https://www.acmicpc.net/problem/2309

 

2309번: 일곱 난쟁이

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.

www.acmicpc.net

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
	static int[] arr, isSelected;

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		arr = new int[9];
		isSelected = new int[7];
		for (int i = 0; i < 9; i++) {
			arr[i] = Integer.parseInt(br.readLine());
		}

		combination(0, 0);
	}

	public static void combination(int cnt, int start) {
		if (cnt == 7) {
			int sum = 0;
			for (int i = 0; i < 7; i++) {
				sum += isSelected[i];
			}
			if (sum == 100) {
				Arrays.sort(isSelected);
				for (int i = 0; i < 7; i++) {
					System.out.println(isSelected[i]);
				}
				return;
			}
			return;
		}

		for (int i = start; i < 9; i++) {
			isSelected[cnt] = arr[i];
			combination(cnt + 1, i + 1);
		}
	}
}

+ Recent posts