문 제
소 스 코 드
#include<iostream>
void Func(int, int, const int&, const int&, int *);
int main() {
int N, M;
while (1) {
std::cin >> N >> M;
if (M >= 1 && M <= N) {
if (N >= M && N <= 8) break;
}
}
int *temp{ new int[M] };
temp[0] = 0;
Func(0, 0, N, M, temp);
delete[] temp;
return 0;
}
void Func(int seq, int start, const int& n, const int& m, int* temp) {
if (m == seq) {
for (int i = 0; i < m; ++i) std::cout << temp[i] << " ";
std::cout << "\n";
return;
}
for (int i = start; i < n; ++i) {
temp[seq] = i + 1;
Func(seq + 1, i, n, m, temp); // 수정
}
}
풀 이
길이가 K인 수열 A가 A1 ≤ A2 ≤ . . . ≤ Ak를 만족하는 비내림차순 이기 때문에
Func의 함수 내에 For 문의 i의 시작이 이전의 i + 1이 아닌 i로 동작하면 된다.
결 과 값
문 제 출 처
문제 링크 : [ BAEKJOON ] https://www.acmicpc.net/problem/15652
'[ ALGORITHM ] > [ 백 준 ]' 카테고리의 다른 글
[BAECKJOON] 2580번 스도쿠 (0) | 2020.06.18 |
---|---|
[BAEKJOON] 9663번 N-Queen (0) | 2020.06.17 |
[BAEKJOON] 15651번 N과 M (3) (0) | 2020.06.15 |
[BAEKJOON] 15650번 N과 M (2) (0) | 2020.06.14 |
[BAEKJOON] 15649번 N과 M (1) (0) | 2020.06.13 |