본문 바로가기

프로그래밍/Algorithm

일곱 난쟁이 문제

문제 : 9명의 난쟁이 중 백설공주의 일곱 난쟁이를 구분하여라. 단, 7난쟁이의 키의 합은 100이다.

문제를 푸는 힌트 ) 9명중에 7명을 고르는 경우의 수는 9명중의 2명을 고르는 수와 같다. 아홉 난쟁이의 키의 총 합을 구한 다음에 2명의 키를 빼면 100이 되는 수를 구하면 된다.

 

 

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
29
30
31
32
33
34
35
36
public class SevenDwarfs {
 
    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
 
        int dwarfs = 9;
 
        int allDwafs[] = new int[dwarfs];
 
        int sum = 0;
 
        for (int i = 0; i < dwarfs; i++) {
            allDwafs[i] = sc.nextInt();
            sum += allDwafs[i];
        }
 
        Arrays.sort(allDwafs);
 
        for (int i = 0; i < dwarfs; i++) {
            for (int j = i + 1; j < dwarfs; j++) {
                if (sum - allDwafs[i] - allDwafs[j] == 100) {
                    for (int k = 0; k < dwarfs; k++) {
                            if(i == k || j == k) continue
                                
                            System.out.println(allDwafs[k]);
                            
                    }
                    System.exit(0);
                }
            }
 
        }
    }
}
 
cs