알고리즘 문제 풀이/Python

python 15650 N과 M(2)

맛대 2022. 5. 4. 16:22

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