[백준] 3040번 백설 공주와 일곱 난쟁이

728x90
반응형

www.acmicpc.net/problem/3040

 

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

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

www.acmicpc.net

사실 이중 포문으로 풀면 되는데 (아닌 2명만 찾으면 됨) 

조합으로 해보라는거 같아서 조합으로 풀었다

import java.util.Scanner;

public class Main {
	static int height[]=new int[9];
	static boolean v[]=new boolean[9];
	static int sum;
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		for (int i = 0; i < 9; i++) {
			height[i]=sc.nextInt();
			sum+=height[i];
		}
		nCr(0,0,0);
	}
	private static void nCr(int cnt,int start,int s) {
		if(cnt==2) {
			if(sum-s!=100)return;
			for (int i = 0; i < 9; i++) {
				if(v[i]==false) {
					System.out.println(height[i]);
				}
			}
			return;
		}
		for (int i = start; i < height.length; i++) {
			v[i]=true;
			s+=height[i];
			nCr(cnt+1,i+1,s);
			v[i]=false;
			s-=height[i];
		}
		
	}
}
728x90
반응형
TAGS.

Comments