https://www.acmicpc.net/problem/3040
3040번: 백설 공주와 일곱 난쟁이
매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다.
www.acmicpc.net
2309번 문제랑 완전 똑같은데 입력 숫자들이 한가지 답이 나오는 경우로 답이 나왔다고 바로 종료할 필요가 없다.
public class Boj3040_백설공주와일곱난쟁이 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
/*
[idea]
먼저 숫자를 배열에 집어넣고, 9개의 합을 구한다.
9개의 합에서 2개를 뺀 결과가 100인 경우를 찾고
그 2개를 제외한 7개를 오름차순 정렬한다.
*/
int n = 9;
int[] arr = new int[9];
int sum = 0;
for (int i = 0; i < 9; i++) {
arr[i] = Integer.parseInt(br.readLine());
sum += arr[i];
}
Arrays.sort(arr);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
if (sum - arr[i] - arr[j] == 100) {
for (int k = 0; k < 9; k++) {
if (k == i || k == j) {
continue;
}
sb.append(arr[k]+"\n");
}
}
// 항상 답이 유일한 경우만 입력으로 주어지므로 답이 나오고 종료할 필요는 없지만
// 다른 답이 나올 수 있는 경우 System.exit(0);으로 바로 종료시킨다. 출력도 한번에 출력이 아닌 매번 출력하는 식으로 한다.
// 그래도 7번 한다.
}
}
System.out.println(sb);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 10807 개수 세기 (0) | 2022.02.24 |
---|---|
백준 5597 과제 안 내신 분..? (0) | 2022.02.24 |
백준 1372 2진수 8진수 (0) | 2022.02.22 |
백준 7567 그릇 (0) | 2022.02.22 |
백준 1076 저항 (0) | 2022.02.21 |