반응형
Notice
Recent Posts
Recent Comments
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
관리 메뉴

Easy-So-Easy

[백준] 15651번 N과 M (3) - C/C++ 본문

BaekJoon

[백준] 15651번 N과 M (3) - C/C++

섭_민 2023. 6. 20. 01:56
반응형

백준 15651 문제(Problem)

15651
백준 15651 문제

 

 

 

풀이(Solution)

이 문제는 재귀함수와 조합을 이용하여 푸는 문제이다. 문제의 핵심 포인트는 같은 수를 여러번 골라도 되어 visited 배열을 통해 따로 사용 여부를 체크하지 않아도 된다는 점과 중복되는 수열을 여러 번 출력하면 안된다는 점이다.

 

func 함수를 통해서 재귀함수와 조합을 이용하였다. depth가 M이 되면, 즉 func 함수가 M번 재귀 호출되면 arr 배열에 담아 있는 원소들을 출력하도록 코드를 구현하였다.

 

또한 func 안의 for문을 통해서 arr 배열에 원소를 계속 업데이트 해주었다.

 

이 문제는 15649번과 15650번 문제를 풀었다면 아주 쉽게 풀었을 문제이다.

 

 

 

 

코드(Code)

#include<iostream>
using namespace std;
int N, M, arr[8];

void func(int depth) {
	if(depth == M) {
		for(int i=0; i<M; i++)
			cout << arr[i] << ' ';
		cout << '\n';
		return;
	}

	for(int i=1; i<=N; i++) {
		arr[depth]=i;
		func(depth+1);
	}
}

int main() {
	cin >> N >> M;
	func(0);	
}
반응형

'BaekJoon' 카테고리의 다른 글

[백준] 2580번 스도쿠 - C/C++  (0) 2023.06.21
[백준] 9663번 N-Queen - C/C++  (0) 2023.06.20
[백준] 15652번 N과 M (4) - C/C++  (0) 2023.06.20
[백준] 15650번 N과 M (2) - C/C++  (0) 2023.06.20
[백준] 15649번 N과 M (1) - C/C++  (0) 2023.06.19