오우... 이건... 응... 9 뚫기가 좀 어려웠고 나머지는 괜찮았다. 하나 뚫으면 나머지가 쭉쭉 풀리는 느낌이라고 해야하나?
여기서... 예시로 들만한게 있을거다. 9번을 하자.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n, m, len = 0;
vector<int> ans;
vector<vector<int>> ha;
bool check[10001] = { false };
vector<bool> idxCh(10);
vector<int> input;
void NandM(int idx, int cnt) {
if (cnt == m) {
if (!binary_search(ha.begin(), ha.end(), ans)) {
for (int i = 0; i < m; i++) cout << ans[i] << " ";
cout << "\n";
ha.push_back(ans);
}
return;
}
for (int i = idx; i < n; i++) {
ans[cnt] = input[i];
NandM(i, cnt + 1);
}
return;
}
int main() {
ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL);
cin >> n >> m;
input = vector<int>(n);
ans = vector<int>(m);
for (int i = 0; i < n; i++) { cin >> input[i]; }
sort(input.begin(), input.end());
NandM(0, 0);
return 0;
}
대충 이런 논리로 12문제를 풀었다. 개꿀이었다. 백트레킹 만세.
'vidigummy KAU > 알고리즘 공부(백준!)' 카테고리의 다른 글
BOJ 1976 여행가자 (0) | 2021.01.16 |
---|---|
BOJ 9663 N-Queen (0) | 2021.01.16 |
BOJ 11286 절댓값 힙 (0) | 2021.01.14 |
BOJ 11279/1927 최대힙/최소힙 (0) | 2021.01.14 |