문제 링크 : www.acmicpc.net/problem/15654
내 풀이(2021.1.5.) :
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> list;
bool visit[8];
int N, M;
void search(vector<int>& v) {
// 해를 찾음
if (v.size() == M) {
for (int i = 0; i < v.size(); i++) {
printf("%d ", v[i]);
}
printf("\n");
return;
}
// 탐색
for (int i = 0; i < list.size(); i++) {
if (visit[i] == true) continue;
visit[i] = true;
v.push_back(list[i]);
search(v);
v.pop_back();
visit[i] = false;
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> N >> M;
for (int i = 0; i < N; i++) {
int temp; cin >> temp; list.push_back(temp);
}
sort(list.begin(), list.end());
vector<int> v;
search(v);
return 0;
}
cout << ~ << endl; 를 쓰면 시간 초과가 나므로, printf 를 써야한다.
'알고리즘 > 완전 탐색' 카테고리의 다른 글
백준 2178번 : 미로 탐색 (0) | 2021.01.24 |
---|---|
백준 2667번 : 단지번호붙이기 (0) | 2021.01.13 |
백트래킹 개념 (0) | 2021.01.05 |
백준 11724번 : 연결 요소의 개수 (0) | 2021.01.03 |
백준 1012번 : 유기농 배추 (0) | 2021.01.02 |