BOJ
[백준][c++] 15652번: N과 M (4)
LEE MINGYU
2024. 9. 8. 16:15
https://www.acmicpc.net/problem/15652
아래 문제의 변형이다.
https://mode-creative.tistory.com/28
[백준][c++] 15650번: N과 M (2)
https://www.acmicpc.net/problem/15650문제 해석사전순으로 증가하는 수열의 모든 경우를 출력하는 문제알고리즘 분류백 트래킹풀이재귀함수를 이용해서 해결한다코드#include using namespace std;static int N,M;st
mode-creative.tistory.com
문제 해석
- 사전순으로 증가하는 수열의 모든 경우를 출력하는 문제
- 15650번 문제와 달라진점:증가 수열에서 중복된 숫자를 인정함
알고리즘 분류
- 백 트래킹
풀이
- 재귀함수를 이용해서 해결한다.
코드
#include <iostream>
using namespace std;
static int N,M;
static int arr[8];
void find(int x, int len) {
if (len == M) {
for (int i=0; i < M; i++) {
cout << arr[i] << " ";
}
cout << endl;
return;
}
for(int i = x; i <= N; i++) {
arr[len] = i;
find(i, len + 1);
}
}
int main()
{
cin >> N >> M;
find(1, 0);
return 0;
}