BOJ15649: N과 M(1) 작성일 2020-01-27 https://www.acmicpc.net/problem/14889 1월동안 100문제 풀기 (9/100) 백트래킹 문제. 역시나 시키는대로 풀기 다만 교훈을 얻은점이 있음: Next Permutation은 아래와 같은 Permutation 구하기 에서 Stack을 쓰는것을 따라하면 된다. 123456789101112131415161718192021222324252627#include <bits/stdc++.h> using namespace std; int M, N, mask[11]; vector<int> arr; void go(int n) { if(n == N) { for(int n : arr) cout << n << " "; cout << "\n"; return; } for(int i = 1; i <= M; i++) { if(mask[i]) continue; mask[i] = 1; arr.push_back(i); go(n+1); arr.pop_back(); mask[i] = 0; } } int main() { cin >> M >> N; go(0); }