https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
○ 풀이
import java.io.*;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr = new int[9];
int over = 0;
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(br.readLine());
over += arr[i];
}
boolean flag = true;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (over - arr[i] - arr[j] == 100) {
arr[i] = arr[j] = 100;
flag = false;
break;
}
}
if(!flag) break;
}
Arrays.sort(arr);
for (int i = 0; i < 7; i++) {
System.out.println(arr[i]);
}
}
}
○ 풀이 설명
미리 9명의 값의 합을 구해놓고, 두 개를 묶는 모든 조건을 찾아보며 (9명의 합 - 100) 의 값과 같은 값인지 확인하였다.
for문이 두개이므로 flag 불린값을 둬서 두개의 for문을 모두 끝내는것이 핵심!
'백준' 카테고리의 다른 글
[백준] 2667 단지번호붙이기_ JAVA (0) | 2023.11.16 |
---|---|
[백준] 수 정렬하기 2_ JAVA (0) | 2023.09.22 |
[백준] 10816 숫자 카드 2_ JAVA (0) | 2023.07.11 |
[백준] 10815 숫자 카드_ JAVA (0) | 2023.07.11 |
[백준] 10773 제로_ JAVA (0) | 2023.07.10 |