Jun's Development Journey
[BOJ] 2309번 일곱 난장이 본문
문제
https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
풀이
문제를 다시 말하면 9명의 난쟁이 중, 7명씩 골라서 키를 다 더해봤을 때 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
|
public class Main {
static Scanner scan = new Scanner(System.in);
static int f_dw[] = new int[7];
static int dwarfs[] = new int[9];
static boolean chk = false;
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0;i<9;i++)
dwarfs[i] = scan.nextInt();
find_dwarf(0,0);
}
public static void find_dwarf(int st, int depth) {
if(chk)//이미 찾았으면 더 안찾고 리턴
return;
if(depth == 7) {
int sum = 0;
for(int i=0;i<7;i++)
sum+=f_dw[i];
if(sum==100) {
chk = true;//찾았으면 계속 찾기 않게 표시해줌
for(int i=0;i<7;i++)
System.out.println(f_dw[i]);
}
return;
}
for(int i=st;i<9;i++) {
f_dw[depth] = dwarfs[i];
find_dwarf(i+1,depth+1);
}
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'BOJ > BruteForce' 카테고리의 다른 글
[BOJ] 2798번 블랙잭 (0) | 2021.03.10 |
---|---|
[BOJ] 1107 리모컨 (0) | 2021.02.19 |
[BOJ] 1182번 부분수열의 합 (0) | 2019.07.30 |
[BOJ] 14501번 퇴사 (0) | 2019.07.30 |
[BOJ] 1065번 한수 (0) | 2019.07.29 |