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

2021. 3. 23. 01:33발돋움/알고리즘

728x90
반응형

n, m = map(int, input().split())

result = []
def num(idx, n, m, check):
    if idx == m:
        print(' '.join(map(str, result)))
        return
    for i in range(1, n + 1):
        if check >= i:
            continue
        result.append(i)
        num(idx + 1, n, m, i)
        result.pop()

num(0, n, m, 0)
728x90

* 문제의 입,출력 예시를 잘보면 앞의 인덱스보다 뒤의 인덱스 값이 커야함

* idx는 수열의 길이로 m개를 골랐을때 join으로 공백을 넣어 출력해준다.

* 함수의 두번째 if문을 보면 check >= x조건이 있는데 check >= x는 중복방지이다.

 

 

 

* 재귀함수 작동원리가 이해가 안간다면 아래를 참고(알아보기 힘들 수 있음)!

 

백준 15651 python ,N과M(3)

n, m = map(int, input().split()) result = [] def num(idx, n, m): if idx == m: print(' '.join(map(str, result))) return for i in range(1, n + 1): result.append(i) num(idx + 1, n, m) result.pop() num..

happytum.tistory.com

728x90
반응형