
특정값을 입력받아 1,2,3의 합으로 나타낼 수 있는 경우의 수를 구하는 프로그램이다
3가지로 나누어보자
마지막에 1을 더해 특정값으로 만드는경우는 n-1을 만드는 경우의 수와 같다
마지막에 2를 더해 특정값으로 만드는경우는 n-2를 만드는 경우의 수와 같다
마지막에 3을 더해 특정값으로 만드는경우는 n-3을 만드는 경우의 수와 같다
n = int(input())
memo = {1:1, 2:2, 3:4} # 1,2,3을 만들수있는 경우의수
def plus(n):
if n in memo:
return memo[n]
memo[n] = plus(n-1) + plus(n-2) + plus(n-3)
#마지막에 1,2,3을 더하는 경우
return memo[n]
for i in range(n):
a = int(input())
print(plus(a))
해당 글은 직접 공부한 내용을 정리한 글입니다
어설픈 코딩실력은 너그럽게 봐주시고 조언은 항상 환영입니다..!