문제 분석
- 조합으로 7명이 될 수 있는 경우의 수를 모두 구한 뒤, 합이 100인지 확인해주면 된다.
문제 풀이
1) 7명이 될 수 있는 조합을 모두 구한다.
2) 합이 100인지 확인하고, 100이라면 출력하고 종료조건을 설정해준다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
private static int[] nan, ans;
private static boolean find;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
nan = new int[9];
ans = new int[7];
for (int i = 0; i < 9; i++) {
nan[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(nan);
combination(0, 0);
}// main
private static void combination(int cnt, int start) {
if (find) {
return;
}
if (cnt == 7) {
if (chk() == 100) {
for (int i = 0; i < 7; i++) {
System.out.println(ans[i]);
}
find = true;
}
return;
}
for (int i = start; i < 9; i++) {
ans[cnt] = nan[i];
combination(cnt + 1, i + 1);
}
}
private static int chk() {
int sum = 0;
for (int i = 0; i < 7; i++) {
sum += ans[i];
}
return sum;
}
}// class-end
'Algorithm > BOJ' 카테고리의 다른 글
BOJ_2578_빙고 (0) | 2021.03.05 |
---|---|
BOJ 2605 줄세우기 (0) | 2021.03.05 |
BOJ 2810 컵홀더 (0) | 2021.03.04 |
BOJ 8320 직사각형을만드는방법 (0) | 2021.03.04 |
BOJ 2851 슈퍼마리오 (0) | 2021.03.04 |