[BOJ] 15649번 : N과 M (1)
2024. 8. 17. 14:48ㆍAlgorithm
1. problem :
https://www.acmicpc.net/status?user_id=rudgh99&problem_id=15649&from_mine=1
2. solution 1 :
#include <bits/stdc++.h>
using namespace std;
int N, M;
int nums[10];
int isUsed[10];
int ans[10];
void solve(int k) {
if (k == M) {
for (int i = 0; i < M; i++) cout << ans[i] << ' ';
cout << '\n';
return;
}
for (int i = 0; i < N; i++) {
if (!isUsed[i]) {
isUsed[i] = 1;
ans[k] = nums[i];
solve(k + 1);
isUsed[i] = 0;
}
}
}
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N >> M;
// 값 초기화
for (int i = 0; i < N; i++) nums[i] = i + 1;
for (int i = 0; i < N; i++) isUsed[i] = 0;
solve(0);
}
backtracking이다. 외우자. 외우자. template이다 생각하고 외우자.
source code 출처 : https://github.com/encrypted-def/basic-algo-lecture/blob/master/0x0C/solutions/15649.cpp
basic-algo-lecture/0x0C/solutions/15649.cpp at master · encrypted-def/basic-algo-lecture
바킹독의 실전 알고리즘 강의 자료. Contribute to encrypted-def/basic-algo-lecture development by creating an account on GitHub.
github.com
'Algorithm' 카테고리의 다른 글
| [C++] next_permutation (0) | 2024.08.17 |
|---|---|
| [BOJ] 9663번 : N-Queen (0) | 2024.08.17 |
| [BOJ] 1182번 : 부분수열의 합 (0) | 2024.08.17 |
| [BOJ] 1992번 : 쿼드트리 (0) | 2024.08.16 |
| [BOJ] 2630 번 : 색종이 만들기 (0) | 2024.08.16 |