1단계: 문제 파악
이번 문제는 숫자를 중복되지 않게 뽑아서 이를 나열하는 경우를 구하는 문제이다.
이 문제는 숫자를 중복되지 않게 뽑는 방법과 뽑힌 숫자를 나열하는 방법을 알아보는 문제이다.
2단계: 배경 지식
이 부분은 DFS와 백트래킹에 대한 더 자세한 공부 후 수정하겠다.
3단계: 문제 풀이
이 부분은 DFS와 백트래킹에 대한 더 자세한 공부 후 수정하겠다.
4단계: 코드 작성
#include<iostream>
int combination[9];
int m, n;
bool visited[9] = { false, };
void Depth_First_Search(int count) {
if (count == m) {
for (int i = 0; i < m; i++) {
printf("%d ", combination[i]);
}
printf("\n");
return ;
}
for (int i = 1; i < n + 1; i++) {
if (!visited[i]) {
combination[count] = i;
visited[i] = true;
Depth_First_Search(count + 1);
visited[i] = false;
}
}
}
int main() {
scanf("%d %d", &n, &m);
Depth_First_Search(0);
}
'백준' 카테고리의 다른 글
[JAVA] 백준 22871 징검다리 건너기(이분 탐색) (1) | 2024.01.11 |
---|---|
백준 15652번 문제 C++ (0) | 2022.01.24 |
백준 15651번 문제 C++ (0) | 2022.01.24 |
백준 15650번 문제 C++ (0) | 2022.01.24 |
백준 2557번 문제 C++ (0) | 2022.01.18 |