[Algorithm] 조합 구하기(DFS)

유얌얌·2024년 9월 3일

알고리즘

목록 보기
22/25

문제

1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 M개를 뽑는 방법의 수를 출력하는 프로그
램을 작성하세요.

해설

이전에 썼던 구슬을 사용하면 안됨
그 다음 구슬부터 구하기

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


def dfs(l, x):
    global cnt
    if l == m:
        print(*ans)
        cnt += 1
        return
    else:
        for i in range(x, n+1):  # i 다음 숫자부터만 사용가능 (조합)
            ans[l] = i
            dfs(l+1, i+1)


dfs(0, 1)
print(cnt)
profile
조금씩이라도 꾸준하게

0개의 댓글