[김태원 알고리즘] 중복순열 구하기 (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)
💛 개인 공부 기록용 블로그입니다. 👻