백준|9095번|1,2,3 더하기

README·2022년 7월 31일
0

파이썬 PS풀이

목록 보기
63/136

문제설명
입력받은 정수를 1,2,3의 조합으로 나타낼수 있는 방법의 수를 출력하는 문제입니다.

작동 순서
1. 각 정수를 나타낼 수 있는 조합의 개수는 (n-1)의 조합의 개수+(n-2)의 조합의 개수+(n-3)의 조합의 개수이므로 모두 구해줍니다.
2. 입력받은 정수를 나타낼 수 있는 조합의 개수를 출력합니다.

소스코드

import sys
T = int(sys.stdin.readline())
arr = [0, 1, 2, 4]+[0]*8
for i in range(4, len(arr)):
    arr[i] = arr[i-3]+arr[i-2]+arr[i-1]
for i in range(T):
    n = int(sys.stdin.readline())
    print(arr[n])

후기
처음볼때는 복잡해보였는데 수들의 규칙을 이해하고 나니 쉽게 풀 수 있었습니다. DP문제는 구현은 복잡하지않은데 점화식을 세우는게 어려운것 같습니다.

profile
INTP 개발자 지망생

0개의 댓글