중복을 허용하면서 조합으로 풀어야한다.
원래의 조합은 중복을 허용하지 않기에 뽑은 숫자 +1 부터 시작하는데
중복조합은 뽑은 숫자 부터 시작해서 중복하도록 만들어 주었다.
#### 중복조합
N, M = map(int, input().split())
choice = [0] * M
def comb_with_rep(idx, start):
if idx == M:
print(" ".join(map(str, choice)))
return
for i in range(start, N):
choice[idx] = i+1
comb_with_rep(idx+1, i)
comb_with_rep(0, 0)
'알고리즘 문제 풀기 > 백준(Baekjoon)' 카테고리의 다른 글
[백준 알고리즘] 15655. N과 M (6) - 조합 (0) | 2021.03.20 |
---|---|
[백준 알고리즘] 15654.N과 M (5) - 순열 (0) | 2021.03.20 |
[백준 알고리즘] 15651. N과 M (3) - 중복순열 (0) | 2021.03.20 |
[백준 알고리즘] 15650. N과 M (2) - 조합 (0) | 2021.03.20 |
[백준 알고리즘] 15649. N과 M (1) - 순열 (0) | 2021.03.20 |