코드
#include <iostream>
using namespace std;
bool visited[9];
int cases[9];
int N, M;
void dfs(int a, int b){
if(b == M){
for(int i = 0; i < M; i++){
cout << cases[i] << " ";
}
cout << "\n";
}
for(int i = a; i <= N; i++){
if(!visited[i]){
visited[i] = true;
cases[b] = i;
dfs(i+1, b+1);
visited[i] = false;
}
}
}
int main(){
cin >> N >> M;
dfs(1, 0);
return 0;
}
알게된 점
백트래킹 어렵다..
진짜 암기해야될것 같다
생각하기 너무 어려워요 ㅜㅜ
'하루하나코딩' 카테고리의 다른 글
백준 15652 : N과 M(4) c++ (1) | 2023.02.15 |
---|---|
백준 15651 : N과 M(3) (0) | 2023.02.11 |
백준 15649 : N과 M (1) c++ (0) | 2023.02.08 |
백준 1292 : 쉽게 푸는 문제 c++ (0) | 2023.02.07 |
백준 10844 : 쉬운 계단 수 c++ (0) | 2023.02.06 |