File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # [ Bronze I] 일곱 난쟁이 - 2309
2+
3+ [ 문제 링크] ( https://www.acmicpc.net/problem/2309 )
4+
5+ ### 성능 요약
6+
7+ 메모리: 16360 KB, 시간: 136 ms
8+
9+ ### 분류
10+
11+ 브루트포스 알고리즘, 정렬
12+
13+ ### 제출 일자
14+
15+ 2026년 1월 19일 20:34:12
16+
17+ ### 문제 설명
18+
19+ <p >왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.</p >
20+
21+ <p >아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.</p >
22+
23+ <p >아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오.</p >
24+
25+ ### 입력
26+
27+ <p >아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.</p >
28+
29+ ### 출력
30+
31+ <p >일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을 수 없는 경우는 없다.</p >
32+
Original file line number Diff line number Diff line change 1+ import java .io .FileInputStream ;
2+ import java .io .BufferedReader ;
3+ import java .io .InputStreamReader ;
4+ import java .util .*;
5+
6+ import static java .lang .System .exit ;
7+
8+ public class Main {
9+
10+ private static int [] nums ;
11+ private static int [] temp ;
12+
13+ public static void main (String [] args ) throws Exception {
14+ //System.setIn(new FileInputStream("input.txt")); // 제출 시 이 줄만 주석처리
15+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
16+
17+ nums = new int [9 ];
18+ temp = new int [7 ];
19+ for (int i = 0 ; i < 9 ; i ++) {
20+ nums [i ] = Integer .parseInt (br .readLine ());
21+ }
22+
23+
24+ Arrays .sort (nums );
25+
26+ temp [0 ] = 0 ;
27+ dfs (0 , temp , 0 , 0 );
28+
29+ }
30+
31+ private static void dfs (int idx , int [] temp , int sum , int cnt ) {
32+ if (cnt == 7 ) {
33+ if (sum == 100 ) {
34+ for (int i = 0 ; i < 7 ; i ++) {
35+ System .out .println (temp [i ]);
36+ }
37+ exit (0 );
38+ }
39+ return ;
40+ }
41+
42+ for (int i = idx ; i < 9 ; i ++) {
43+ temp [cnt ] = nums [i ];
44+ dfs (i + 1 , temp , sum + nums [i ], cnt + 1 );
45+ }
46+ }
47+ }
You can’t perform that action at this time.
0 commit comments