평범한 필기장

[BOJ_Python] 9095_1, 2, 3 더하기 본문

코딩 테스트 준비/BOJ

[BOJ_Python] 9095_1, 2, 3 더하기

junseok-rh 2023. 3. 27. 00:05

https://www.acmicpc.net/problem/9095

 

9095번: 1, 2, 3 더하기

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.

www.acmicpc.net

내 풀이방식

 Dynamic Programming 방식을 이용했다. n이 5일때까지 직접 써보면 규칙을 발견할 수 있는데, n의 방법의 수는 n-1, n-2, n-3의 방법의 수를 다 더한 것이 된다. 

(이렇게 하나하나 해보면서 규칙을 찾아나가는게 맞는지는 모르겠다ㅜㅜ)

이 규칙을 그대로 구현만 하면 되는데, 엄청 간단하다!

 

내 코드

t = int(input())
for _ in range(t):
    n = int(input())
    dp = [0, 1, 2, 4]
    for i in range(4, n+1):
        dp.append(dp[i-1]+dp[i-2]+dp[i-3])
    print(dp[n])

 

 

뭔가 끼워맞추기식으로 풀어서 맞춘 느낌이라 뭔가 찝찝한 기분이 남았다,,,ㅎㅎㅎ