acmicpc
[BAEKJOON] 2309. 일곱 난쟁이
코드와이
2021. 2. 5. 10:28
문제링크
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
package acmicpc;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class 일곱난쟁이 {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static boolean[] isSelected = new boolean[9];
static int[] arr;
public static void main(String[] args) throws NumberFormatException, IOException {
arr = new int[9];
for(int i = 0 ; i < 9 ; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
func(0);
}
public static void func(int idx) {
if(idx == 9) {
int sum = 0;
int[] ans = new int[7];
int cnt = 0;
try {
for(int i = 0 ; i < 9 ; i++) {
if(isSelected[i]) {
ans[cnt] = arr[i];
sum += arr[i];
cnt += 1;
}
}
}
catch(Exception e) {
return;
}
if (sum == 100 && cnt == 7) {
Arrays.sort(ans);
for(int a : ans) System.out.println(a);
System.exit(0);
}
return;
}
isSelected[idx] = true;
func(idx+1);
isSelected[idx] = false;
func(idx+1);
}
}