JAVA/오류고민

[백준] 17388번 와글와글 숭고한

(งᐛ)ว 2023. 11. 15. 00:33
728x90

 

반복문을 돌며 세 개의 숫자를 입력받고 합계를 계산, 

입력받은 값을 기준으로 최소값을 구별하자. 

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int[] arr = new int[3];
		int sum = 0;
		int min = Math.min(arr[0], arr[1]);
		min = Math.min(arr[2], min);

		for (int i = 0; i < arr.length; i++) {
			arr[i] = sc.nextInt();
			sum += arr[i];
		}

		if (sum >= 100) {
			System.out.println("OK");
		} else {
			if (min == arr[0]) {
				System.out.println("Soongsil");
			} else if (min == arr[1]) {
				System.out.println("Korea");
			} else if (min == arr[2]) {
				System.out.println("Hanyang");
			}
		}

	}
}

 

정답이 아니다. 

 

sc.nextInt()로 값을 입력을 받기 전에 최소값을 미리 계산해버리므로

arr배열은 항상 0으로 채워지고 최소값은 항상 0이 되므로 정답을 출력할 수 없다. 

미니멈을 구하는 순서를 sc.nextInt()로 값을 입력받고 배열이 초기화된 이후로 바꿔보자. 

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int[] arr = new int[3];
		int sum = 0;

		for (int i = 0; i < arr.length; i++) {
			arr[i] = sc.nextInt();
			sum += arr[i];
		}
		
		int min = Math.min(arr[0], arr[1]);
		min = Math.min(arr[2], min);

		if (sum >= 100) {
			System.out.println("OK");
		} else {
			if (min == arr[0]) {
				System.out.println("Soongsil");
			} else if (min == arr[1]) {
				System.out.println("Korea");
			} else if (min == arr[2]) {
				System.out.println("Hanyang");
			}
		}

	}
}
728x90

'JAVA > 오류고민' 카테고리의 다른 글

[백준] 4458번 첫 글자를 대문자로  (3) 2023.11.24
[백준] 9093번 단어 뒤집기  (1) 2023.11.15
[백준] 11365번 !밀비 급일  (0) 2023.11.07
[백준] 11006번 남욱이의 닭장  (0) 2023.11.07
[백준] 10872번 팩토리얼  (0) 2023.11.07