본문 바로가기

Java로 배우는 자료구조

제1-1강 변수, 배열, 반복문 (6/7)

Code12

import java.util.Scanner;

public class Code12 {
	public static void main(String[] args) {
		Scanner kb = new Scanner(System.in);
		int n = kb.nextInt();
		int [] data = new int [n];
		for (int i = 0; i < n; i++)
			data[i] = kb.nextInt();
		kb.close();
		
		int maxSum = 0;
		for (int i = 0; i < n; i++) {
			for (int j = i; j <n; j++) {
				int sum = 0;
				for (int k = i; k <= j; k++)
					sum += data[k];
				if (sum > maxSum)
					maxSum = sum;
				// add data[i] ... data[j]
				// if the sum > max
				// max = the sum;
			}
		}
		System.out.println("The max sum is " + maxSum);
	}
}

 

  • n개의 정수를 입력받아 배열에 저장하라. 배열에서 0개 이상의 연속된 정수들을 더하여 얻을 수 있는 최댓값을 구하여 출력하라.

 

Code13

import java.util.Scanner;

public class Code13 {
	public static void main(String[] args) {
		Scanner kb = new Scanner(System.in);
		int n = kb.nextInt();
		int [] data = new int [n];
		for (int i = 0; i < n; i++)
			data[i] = kb.nextInt();
		kb.close();
		
		int max = 0;
		for (int i = 0; i < n; i++) {
			for (int j = i; j < n; j++) {
				// convert data[i] ... data[j] into a integer
				int val = 0;
				for (int k = i; k <= j; k++)
					val = val * 10 + data[k];
				
				// test if it is a prime
				boolean isPrime = true;
				for (int k = 2; k * k <= val && isPrime; k++)
					if (val % k == 0)
						isPrime = false;
				
				// if yes, compare to the max
				if (isPrime && val > 1 && val > max)
					max = val;
			}
		}
		if (max > 0)
			System.out.println("The max prime number is " + max);
		else
			System.out.println("No prime number exists.");
	}
}

 

  • n개의 음이 아닌 한 자리 정수를 입력받아 배열에 저장하라. 배열에서 1개 이상의 연속된 정수들을 나열하여 얻을 수 있는 소수 중에서 최댓값을 구하여 출력하라.