일상

2309 : 일곱 난쟁이

STUDYING,,, 2021. 8. 17. 00:03
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Problem_2309 {

	static int N = 9, R = 7;
	static int[] mans = new int[N];
	static boolean[] result = new boolean[N];
	static ArrayList<Integer> solve = new ArrayList<>();

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		for (int i = 0; i < N; i++) {
			mans[i] = sc.nextInt();
		}
		
		comb(0, 0, 0);
		
		int size =solve.size();

		for (int i = 7; i < size; i++) {
			solve.remove(7);
		}
		
		Collections.sort(solve);
		
		for (int i = 0; i < solve.size(); i++) {
			System.out.println(solve.get(i));
		}
	}

	private static void comb(int target, int cnt, int sum) {

		if (cnt == R) {
			if (sum == 100) {
				for (int i = 0; i < N; i++) {
					if (result[i])
						solve.add(mans[i]);
				}
			}
			return;
		}

		if (target == N)
			return;

		result[target] = true;
		comb(target + 1, cnt + 1, sum + mans[target]);
		result[target] = false;
		comb(target + 1, cnt, sum);

		return;
	}
}

'일상' 카테고리의 다른 글

2839: 설탕 배달  (0) 2021.08.18
2954 : 창영이의 일기장  (0) 2021.08.17
11399 : ATM  (0) 2021.08.16
3985 : 롤 케이크  (0) 2021.08.16
16926 : 배열 돌리기 1  (0) 2021.08.14