https://www.acmicpc.net/problem/15651
문제 이해
Backtracking을 하면서 모든 경우를 탐색하면 된다.
DFS를 사용한다.
작성 코드
#include <iostream>
using namespace std;
int N, M;
int ans[9];
void BackTracking(int cnt){
if(cnt == M){
for(int i = 0; i<M; i++){
cout << ans[i] << " ";
}
cout << "\n";
}
else{
for(int i = 1; i<=N; i++){
ans[cnt] = i;
BackTracking(cnt+1);
}
}
}
int main(void){
cin >> N >> M;
BackTracking(0);
return 0;
}
'컴퓨터기본 > 문제풀이' 카테고리의 다른 글
[정올] 1106 : 장기 (0) | 2021.09.14 |
---|---|
[백준] 2589번: 보물섬 (0) | 2021.09.14 |
[백준] 15650번: N과 M (2) (0) | 2021.09.13 |
[백준] 15649번: N과 M(1) (0) | 2021.09.12 |
[백준] 10814번: 나이순 정렬 (0) | 2021.09.11 |