728x90
반응형
https://www.acmicpc.net/problem/2309
이 문제는 9명 중 7명을 뽑았을 때, 그 7명 키의 합이 100인 경우 정렬한 후 출력해주면 끝나는 문제이다.
n명 중 m명을 뽑는 알고리즘을 설계해서 해결해주었다.
bool visited[10];
int od[10];
int nanj[10];
#include <iostream>
#include <queue>
#include <vector>
#include <stack>
#include <string>
#include <cstring>
#include <map>
#include <algorithm>
#define ll long long
#define INF 987654321
#define CUNLINK ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
#define MAX 100000 + 1
#define endl '\n'
using namespace std;
void func(int depth, int start) {
if (depth == 7) {
int total = 0;
for (int i = 0; i < 7; i++) {
total += nanj[i];
}
if (total == 100) {
sort(nanj, nanj + 7);
for (int i = 0; i < 7; i++) cout << nanj[i] << endl;
exit(0);
}
return;
}
for (int i = start; i < 9; i++) {
if (!visited[i]) {
visited[i] = true;
nanj[depth] = od[i];
func(depth + 1, i + 1);
visited[i] = false;
}
}
}
int main() {
CUNLINK;
for (int i = 0; i < 9; i++) cin >> od[i];
func(0, 0);
return 0;
}
728x90
반응형
'BOJ > 재귀' 카테고리의 다른 글
[C/C++] 백준 - 18290번 : NM과 K(1) (0) | 2021.09.20 |
---|---|
[C/C++] 백준 - 15658번 : 연산자 끼워넣기 (2) (0) | 2021.09.06 |
[C/C++] 백준 - 10971번 : 외판원 순회2 (0) | 2021.09.06 |
[C/C++] 백준 - 10819번 (차이를 최대로) (0) | 2021.07.03 |
[C/C++] 백준 - 17829번 (222 - 폴링) (0) | 2021.06.20 |