티스토리 뷰

def dfs():
    if len(s) == M:
        print(' '.join(map(str,s)))
        return
    for i in range(1, N+1):
        if i in s: # 가지치기, 이미 선택한 숫자 배제
            continue
        if len(s) > 0: #리스트 안에 존재할 때
            if s[-1] > i: #맨 끝 원소가 i보다 작을 때는 넘겨버린다.(오름차순 만들기 위함)
                continue
        s.append(i)
        dfs() #함수호출
        s.pop() # 출력 후 return하고 마지막 원소 비우기

N, M = map(int, input().split())
s = []
dfs()

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 15652. N과 M (4)  (0) 2021.04.20
[백준] 15651. N과 M (3)  (0) 2021.04.20
[백준] 15649 . N과 M (1)  (0) 2021.04.20
[백준] 2217. 로프  (0) 2021.04.19
[백준] 11501. 주식  (0) 2021.04.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함