코드
#include <iostream>
#include <algorithm>
using namespace std;
int N, M;
int arr[8];
int number[8];
void dfs(int a, int b){
if(a == M){
for(int i = 0; i < M; i++){
cout << number[arr[i]] << " ";
}
cout << "\n";
return;
}
for(int i = b; i < N; i++){
arr[a] = i;
dfs(a+1, i);
}
}
int main(){
cin >> N >> M;
for(int i = 0; i < N; i++){
cin >> number[i];
}
sort(number, number+N);
dfs(0, 0);
return 0;
}
알게된 점
N과 M 시리즈를 통해
백트래킹을 좀 이해? 한거같다..
암기인가..?
일단 익숙해졌다!
'하루하나코딩' 카테고리의 다른 글
백준 1654 : 랜선 자르기 python (0) | 2023.02.21 |
---|---|
백준 18290 : NM과 K(1) c++ (0) | 2023.02.17 |
백준 15656 : N과 M(7) c++ (0) | 2023.02.17 |
백준 15655 : N과 M(6) c++ (0) | 2023.02.15 |
백준 15654 : N과 M(5) c++ (0) | 2023.02.15 |