- N과 M (1) : 중복 수열 X / 숫자 중복 X
- N과 M (2) : 중복 수열 X / 숫자 중복 X / 오름차순
- N과 M (3) : 중복 수열 X / 숫자 중복 O
- N과 M (4) : 중복 수열 X / 숫자 중복 O / 비내림차순
C++)
#include <iostream>
#include <algorithm>
#define MAX_NUM 10
using namespace std;
int n, m;
int ans[MAX_NUM];
// cnt == 현재 수열 길이
// cur == 탐색 시작 위치
void suyeol(int cnt, int cur) {
if (cnt == m) {
for (int i = 0; i < m; i++)
cout << ans[i] << " ";
cout << "\n";
return;
}
for (int i = cur; i <= n; i++) {
ans[cnt] = i;
suyeol(cnt + 1, i);
}
}
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
suyeol(0, 1);
return 0;
}
Python)
import sys
read = sys.stdin.readline
n, m = map(int, read().rstrip().split())
ans = [0] * m
def suyeol(cnt, cur):
if cnt == m:
print(' ' .join(map(str, ans)))
return
for i in range(cur, n):
ans[cnt] = i+1
suyeol(cnt+1, i)
suyeol(0, 0)'백준 2 > 백트래킹' 카테고리의 다른 글
| [백준 15655] N과 M(6) (C++/Python) (0) | 2020.12.07 |
|---|---|
| [백준 15654] N과 M(5) (C++/Python) (0) | 2020.12.07 |
| [백준 15651] N과 M(3) (C++/Python) (0) | 2020.12.07 |
| [백준 15650] N과 M(2) (C++/Python) (0) | 2020.12.07 |
| [백준 15649] N과 M (1) (C++/Python) (0) | 2020.12.07 |