오뚝이개발자

[백준15651] N과 M (3) 본문

코딩 테스트/백준

[백준15651] N과 M (3)

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

문제


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

 

15651번: N과 M (3)

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

www.acmicpc.net

 

생각의 흐름


중복선택이 가능하다는 점을 유념해야 한다.

 

깨달은 점


파이썬 itertools에 product라는 함수가 있다.

product(arr, repeat=M)과 같이 첫번째 인자는 리스트, 두번째 인자는 반복 횟수이다.

예컨대, arr = [1,2,3], M=2라면 (1,1)과 같이 두 개를 뽑는데 중복해서 뽑는 경우를 포함한다.

코드


from itertools import product

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

 

728x90
300x250

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

[백준15654] N과 M (5)  (0) 2020.03.14
[백준15652] N과 M (4)  (0) 2020.03.14
[백준15650] N과 M (2)  (0) 2020.03.14
[백준15649] N과 M (1)  (0) 2020.03.12
[백준11723] 집합  (0) 2020.03.10
Comments