오뚝이개발자

[백준15652] N과 M (4) 본문

코딩 테스트/백준

[백준15652] N과 M (4)

땅어 2020. 3. 14. 15:27
728x90
300x250

문제

https://www.acmicpc.net/problem/15652

 

15652번: N과 M (4)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다.

www.acmicpc.net

 

생각의 흐름


이전에 포스팅 했던 N과 M (3)과 비교했을 때 중복선택을 허락하는 것은 동일하지만 순열이 아닌 조합이라는 점이 다르다.

 

깨달은 점


파이썬 itertools에는 이를 지원하는, 즉 중복선택을 허락하는 조합을 구하는 combinations_with_replacement라는 함수가 있다.

 

코드


from itertools import combinations_with_replacement

N,M = map(int, input().split())
arr = list(range(1,N+1))
# 중복을 허용하는 조합
for case in combinations_with_replacement(arr, M):
    print(' '.join(map(str, case)))

 

728x90
300x250

'코딩 테스트 > 백준' 카테고리의 다른 글

[백준15655] N과 M (6)  (0) 2020.03.14
[백준15654] N과 M (5)  (0) 2020.03.14
[백준15651] N과 M (3)  (0) 2020.03.14
[백준15650] N과 M (2)  (0) 2020.03.14
[백준15649] N과 M (1)  (0) 2020.03.12
Comments