코딩공작소
[백준]일곱난쟁이 본문
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
35
36
37
38
39
40
41
42
43
44
45
46
|
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
vector<int> a(9);
vector<int> b;
bool isV[9];
bool sss = false;
void solve(int s,int len) {
if(sss == true) return;
if(len == 7) {
int aa = 0;
for (int i = 0; i < 9; i++) {
if (isV[i] == true) aa += a[i];
}
if (aa == 100) {
sss = true;
for (int i = 0; i < 9; i++) {
if (isV[i] == true) b.push_back(a[i]);
}
}
return;
}
for (int i = s; i < 9; i++) {
if (isV[i] == false) {
isV[i] = true;
solve(i,len + 1);
isV[i] = false;
}
}
}
int main()
{
for (int i = 0; i < 9; i++) cin >> a[i];
solve(0, 0);
sort(b.begin(), b.end());
for (int i = 0; i < 7; i++) printf("%d\n", b[i]);
return 0;
}
|
cs |
'알고리즘 > 그리디&완탐' 카테고리의 다른 글
[SWEA]디저트카페(2) (0) | 2019.10.10 |
---|---|
[백준]사다리조작(second) (0) | 2019.09.05 |
[백준]Maaaaaaaaaaze (0) | 2019.08.16 |
[백준]배열돌리기4 (0) | 2019.08.12 |
[백트래킹]끝점을 늘려가면서 탐색하는 순열조합+a (0) | 2019.08.11 |