본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬]15650번 N과 M (2)

by 현장 2021. 10. 12.

-코드

def sol(c, l, cnt):
    if len(arr) == l:
        print(*arr)
        return
    for i in range(cnt, c + 1):
        if i not in arr:
            arr.append(i)
            cnt += 1
            sol(c, l, cnt)
            arr.pop()


m, n = map(int, input().split())
arr = []
sol(m, n, 1)

예전에 했던 N과 M의 기본 틀에서 중복된 것들을 제외시켜야 하기 때문에  특정수에 1씩 더해서 for문에서 돌아가는 숫자를 줄이기 위해서 처음에 +1을 어디에 해야 하나 고민을 하다가 시작점 부분에 +1을 하려면 다른 수가 필요하여 cnt를 선언하고 sol(c, l, cnt + 1)로 하였으나 출력이 이상하게 나와서 따로 cnt를 빼서 +1을 선언해을 해주니 해결이 되었습니다.