Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

코드와이

[BAEKJOON] 2309. 일곱 난쟁이 본문

acmicpc

[BAEKJOON] 2309. 일곱 난쟁이

코드와이 2021. 2. 5. 10:28

 

문제링크

www.acmicpc.net/problem/2309

 

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);
	}
}

'acmicpc' 카테고리의 다른 글

[BAEKJOON] 2164. 카드2  (0) 2021.02.06
[BAEKJOON] 1057. 토너먼트  (0) 2021.02.06
[BAEKJOON] 1051. 숫자 정사각형  (0) 2021.02.06
[BAEKJOON] 1003. 피보나치 함수  (0) 2021.02.04
[BAEKJOON] 1004. 어린 왕자  (0) 2021.02.04