티스토리 뷰

728x90

문제

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

 

3040번: 백설 공주와 일곱 난쟁이

매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다.

www.acmicpc.net

 

 

풀이 및 소스코드

import java.util.Scanner;

public class Main {
	static int[] hat_num = new int[9];
	static boolean[] real_nan = new boolean[9];
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		for (int i = 0; i < 9; i++) {
			hat_num[i] = scan.nextInt();
		}
		find_nan(0, 0, 0);
	}
	public static void find_nan(int cnt, int check_cnt, int sum) {
		if(cnt == 9) {
			if(check_cnt == 7 && sum==100) {
				for(int i=0;i<9;i++) {
					if(real_nan[i]) {
						System.out.println(hat_num[i]);
					}
				}
				System.exit(0);
			}
			return;
		}
		real_nan[cnt] = true;
		find_nan(cnt+1, check_cnt+1, sum+hat_num[cnt]);
		real_nan[cnt] = false;
		find_nan(cnt+1,check_cnt, sum);
	}

}
반응형