-
[백준 15649] N과 M(1) 순열백준/DFS and 백트래킹 2023. 7. 7. 14:27
가장 기본적인 순열문제임
백트래킹으로 풀면 된다
123 213 이 다르므로
DFS안에서 무조건 첨부터 끝까지 돌게 하면 된다

#include <iostream> #include <vector> #define SIZE 11 using namespace std; bool visited[SIZE]; int arr[SIZE]; vector<int> ans; int N, M; void print() { for (int i = 0; i < M; i++) cout << ans[i] << " "; cout << "\n"; } void DFS(int cnt) { if (cnt == M) { print(); return; } for (int i = 1; i <= N; i++) { if (!visited[i]) { visited[i] = true; ans.push_back(arr[i]); DFS(cnt + 1); ans.pop_back(); visited[i] = false; } } return; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N >> M; for (int i = 1; i <= N; i++) arr[i] = i; DFS(0); return 0; }'백준 > DFS and 백트래킹' 카테고리의 다른 글
[백준 16943] 숫자 재배치 (0) 2023.09.12 [백준 1759] 암호 만들기 (2) 2023.07.07 [백준 15686] 치킨 배달 (0) 2023.07.05 [백준 16437] 양 구출 작전 (0) 2023.06.30 [백준 1987] 알파벳 (1) 2023.05.16