티스토리 뷰

문제

  • 1~N까지의 구슬이 있을 때, M개를 뽑는 방법의 수를 출력
  • n: 구슬의 갯수 (3 <= N <= 10)
  • m: 몇개를 뽑을지 (2 <= M <= N)
  • 출력 순서는 사전순으로 오름차순으로 출력할 것

생각

  • DFS를 사용하여 재귀적으로 풀자

Solution

n, m = map(int, input().split())
res = [0] * (n + 1)
cnt = 0


def dfs(level, start):
    global cnt
    if level == m:
        for j in range(level):
            print(res[j], end=" ")
        cnt += 1
        print()
    else:
        for i in range(start, n + 1):
            res[level] = i
            dfs(level + 1, i + 1)


dfs(0, 1)
print(cnt)

'Problem solution > 인프런' 카테고리의 다른 글

[인프런] 양팔저울  (0) 2022.08.08
[인프런] 휴가  (0) 2022.08.04
[인프런] 최대점수 구하기  (0) 2022.08.04
[인프런] 인접행렬  (0) 2022.08.04
[인프런] 수들의 조합  (0) 2022.08.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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 31
글 보관함