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