문제 분석

- 조합으로 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