-
백준 15654 N과 M (5) | 조합 | C++[백준 알고리즘]/[C++] 2021. 4. 6. 14:01728x90반응형
이번 포스팅은 백준 15654번 N과 M (5)입니다.
아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.
기본 알고리즘
조합을 재귀함수로 구현
15650번과 정렬이 되어있지 않은 입력 값들이 들어온다는 점만 제외하면 동일한 문제
15650번 풀이 참고 - scarlettb.tistory.com/125
전체 코드
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748//백준15654 N과 M (5)#include <iostream>#include <vector>#include <algorithm>using namespace std;const int MAX = 8;int N, M;vector<int> list;bool selected[MAX];vector<int> ans;void print() {for (int i = 0; i < ans.size(); i++) {cout << ans[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;ans.push_back(list[i]);DFS(cnt + 1);ans.pop_back();selected[i] = false;}}int main() {cin >> N >> M;for (int i = 0; i < N; i++) {int n;cin >> n;list.push_back(n);}sort(list.begin(), list.end());DFS(0);return 0;}cs 728x90반응형'[백준 알고리즘] > [C++]' 카테고리의 다른 글
백준 10159 저울 | 플로이드-워셜 | C++ (0) 2021.04.08 백준 2458 키 순서 | 플로이드-워셜 | C++ (0) 2021.04.08 백준 11404 플로이드 | C++ (0) 2021.04.06 백준 9663 N-Queen | 백트래킹, DFS | C++ (0) 2021.04.01 백준 15652 N과 M (4) | 중복조합 | C++ (0) 2021.03.30