백준

백준 15649번 문제 C++

LimeCoding 2022. 1. 24. 18:19

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