코드
#include <iostream>
#include <algorithm>
using namespace std;
int N, M;
int number[8];
int arr[8];
bool visited[9];
void dfs(int a){
if(a == M){
for(int i = 0; i < M; i++){
cout << number[arr[i]] << " ";
}
cout << "\n";
}
for(int i = 0; i < N; i++){
if(!visited[i]){
visited[i] = true;
arr[a] = i;
dfs(a+1);
visited[i] = false;
}
}
}
int main(){
cin >> N >> M;
for(int i = 0; i < N; i++){
cin >> number[i];
}
sort(number, number+N);
dfs(0);
return 0;
}
알게된 점
그냥 N과 M (1) 이랑 비슷했다.
그냥 풀면 된다
백트래킹 점점 감이 잡힌다
'하루하나코딩' 카테고리의 다른 글
백준 15656 : N과 M(7) c++ (0) | 2023.02.17 |
---|---|
백준 15655 : N과 M(6) c++ (0) | 2023.02.15 |
백준 15652 : N과 M(4) c++ (1) | 2023.02.15 |
백준 15651 : N과 M(3) (0) | 2023.02.11 |
백준 15650 : N과 M(2) (0) | 2023.02.10 |