코딩 연습/정올

[JAVA] 561 : 배열1 - 자가진단7

요모조묘 2023. 3. 5. 02:14
  • 처음 짠 코드 (별로다..)
import java.util.Scanner;

public class Jung561 {

	public static void main(String[] args) {
		// 10개의 정수를 입력받아 100 미만의 수 중 가장 큰 수와 
		//100 이상의 수 중 가장 작은 수를 출력하는 프로그램을 작성하시오.
		//(입력되는 정수의 범위는 1이상 10,000 미만이다.
		//만약 해당하는 수가 없을 때에는 100 을 출력한다.)
		
		String[] arr = new String[10];
		int [] arr2 = new int[10];
		Scanner sc = new Scanner(System.in);
		String num = sc.nextLine();
		arr = num.split(" ");
		
		for(int i =0; i<10;i++) {
			arr2[i] = Integer.parseInt(arr[i]); 
		}
		
		int min = 10000;
		int max = 0;
		for(int i =0; i<10;i++) {
			if(arr2[i]<100 && max<arr2[i]) {
				max = arr2[i];
			}
			if(arr2[i]>=100 && min>arr2[i]) {
				min = arr2[i];
			}
		}
		if(min==10000) min = 100;
		if(max==0) max = 100;
		System.out.print(max+" "+min);
	}
}
  • 입력값을 넣는 부분을 바꾼 코드
import java.util.Scanner;

public class Jung564 {

	public static void main(String[] args) {

		int[] arr = new int[10];
		Scanner sc = new Scanner(System.in);
		
		for(int i =0; i<10;i++) {
			int input = sc.nextInt();
			arr[i]=input;
			System.out.println(arr[i]);
		}
		
		int min = 10000;
		int max = 0;
		for(int i =0; i<10;i++) {
			if(arr[i]<100 && max<arr[i]) {
				max = arr[i];
			}
			if(arr[i]>=100 && min>arr[i]) {
				min = arr[i];
			}
		}
		if(min==10000) min = 100;
		if(max==0) max = 100;
		System.out.print(max+" "+min);
	}
}
처음 코드 / 바뀐 코드 부분

왼쪽보다 오른쪽이 훨씬 간단하고 직관적이다.

원래 입력값이 한줄로 되어있으면 nextInt()는 쓸 수 없는 줄 알았는데 아니었다 ...

'코딩 연습 > 정올' 카테고리의 다른 글

[JAVA] 568 : 배열2 - 자가진단5  (0) 2023.03.05
[JAVA] 564 : 배열2 - 자가진단1  (0) 2023.03.05