-
백준 15649 N과 M (1) | 순열 | C++[백준 알고리즘]/[C++] 2021. 3. 30. 11:06728x90반응형
이번 포스팅은 백준 15649번 N과 M(2)입니다.
아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.
기본 알고리즘
순열을 재귀함수로 구현
전체 코드
1234567891011121314151617181920212223242526272829303132333435363738394041424344//백준15649 N과M(1)#include <iostream>#include <vector>using namespace std;const int MAX = 8;int N, M;int arr[MAX];bool selected[MAX];vector<int> v;void print() {for (int i = 0; i < v.size(); i++) {cout << v[i] << " ";}cout << "\n";}void DFS(int cnt) {if (cnt == M) {print();return;}for (int i = 0; i < N; i++) {if (selected[i]) continue;selected[i] = true;v.push_back(arr[i]);DFS(cnt + 1);v.pop_back();selected[i] = false;}}int main() {cin >> N >> M;for (int i = 0; i < N; i++) {arr[i] = i + 1; //arr[0]=1, arr[1]=2, ...}DFS(0);return 0;}cs 728x90반응형'[백준 알고리즘] > [C++]' 카테고리의 다른 글
백준 15652 N과 M (4) | 중복조합 | C++ (0) 2021.03.30 백준 15651 N과 M (3) | 중복순열 | C++ (0) 2021.03.30 백준 15650 N과 M (2) | 조합 | C++ (0) 2021.03.30 백준 1766 문제집 | C++ (0) 2021.03.29 백준 1005 ACM Craft | C++ (1) 2021.03.29