이 문제는 N과 M 시리즈 문제를 풀었다면 정말 눈감고(?)도 풀 수 있다.
#include <bits/stdc++.h>
using namespace std;
vector<int> arr10974;
vector<bool> check10974(9,0);
void backback10974(int N, int count){
if(N == count){
for(int i=0;i<N;++i)
cout<<arr10974[i]<<" ";
cout<<"\n";
return;
}
for(int i=1;i<=N;++i){
if(!check10974[i]){
check10974[i] = true;
arr10974.push_back(i);
backback10974(N, count+1);
arr10974.pop_back();
check10974[i] = false;
}
}
}
void everything10974(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N; cin>>N;
backback10974(N, 0);
}
'알고리즘 > 분할정복 & 재귀 & 백트래킹' 카테고리의 다른 글
[백준] 16974 레벨 햄버거 (0) | 2023.05.19 |
---|---|
[백준] 10819 차이를 최대로 (0) | 2023.05.17 |
[백준] 2580 스도쿠 (0) | 2023.05.16 |
[백준] 1987 알파벳 (0) | 2023.05.15 |
[백준] 1182 부분 수열의 합 (0) | 2023.05.15 |