https://www.acmicpc.net/problem/15650
- 수열의 길이가 M으로 변하므로 재귀를 활용
- 마지막에 추가한 숫자보다 이번에 추가할 숫자가 더 작을경우 재귀를 안시키게 설계
def check(ls): #인자를 list 형태로 받았음, str 형태로 받았으면 더 좋았을거 같다
if len(ls) == M:
print(*ls)
return
for i in range(1,N+1):
if ls and ls[-1] < i: # ls를 하지 않으면 ls[-1]가 없음
check(ls+[i])
elif not ls: # 첫 실행시
check(ls+[i])
N,M = map(int,input().split())
check([])
'알고리즘 문제 풀이 > Python' 카테고리의 다른 글
python 백준 16953 A - > B (0) | 2022.05.07 |
---|---|
python 백준 15652 N과M(4) (0) | 2022.05.05 |
python 백준 1753 최단경로 (0) | 2022.05.03 |
python 백준 2407 조합 (0) | 2022.05.03 |
python 18511 큰 수 구성하기 (0) | 2022.05.02 |