반응형
풀이
itertools 쓴거
엄청 쉽네용
import sys
from itertools import combinations_with_replacement
input=sys.stdin.readline
n,m=map(int,input().split())
lst=[i for i in range(1,n+1)]
lst=list(combinations_with_replacement(lst,m))
for i in lst:
print(" ".join(map(str,i)))
안쓴대로 풀려는데
시간초과 나서
참고했습니다.
number는 n값을 안넘기도록 사용하여 1~n까지 출력하고,
selected는 배열의 인덱스로 사용했습니다.
import sys
from itertools import combinations_with_replacement
input=sys.stdin.readline
n,m=map(int,input().split())
lst=[0 for i in range(m)]
def go(number,selected,n,m):
if selected==m:
print(" ".join(map(str,lst)))
return
if number>n:
return
lst[selected]=number
go(number,selected+1,n,m)
lst[selected]=0
go(number+1,selected,n,m)
go(1,0,n,m)
반응형
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Python/파이썬 11724 백준] 연결 요소의 개수 (0) | 2021.04.09 |
---|---|
[Python/파이썬 15665 백준] N과 M(11) (0) | 2021.04.07 |
[Python/파이썬 백준 1759] 암호 만들기 (0) | 2021.04.03 |
[Python/파이썬 10819 백준] 차이를 최대로 (0) | 2021.04.03 |
[Python/파이썬 15684 백준] 사다리 조작 (0) | 2021.03.28 |