[김태원 알고리즘] 중복순열 구하기 (DFS)
사용 언어: Python3
문제

풀이
import sys
input = sys.stdin.readline # 대량의 데이터를 읽을 때 속도 빨라진다
S = input().rstrip() # 문자열을 읽을 때에는 개행문자 탈피
위 내용은 필수는 아니지만 알아두면 좋은 내용이다!
풀이는 아래를 참고하자.
def DFS(L): # L은 Level (0레벨부터 시작)
    global cnt
    if L == M: # 중복순열 완성
        cnt += 1
        print(' '.join(map(str,res)))
    else:
        for i in range(1, N+1):
            res[L] = i
            DFS(L+1)
N, M = map(int, input().split())
res = [0] * M # M개 뽑기
cnt = 0 # 총 경우의 수
DFS(0)
print(cnt)

💛 개인 공부 기록용 블로그입니다. 👻
