티스토리 뷰


f(1)일때는 경우의 수가 1, f(2)일때는 경우의 수가 2, f(3)일때는 경우의 수가 4, f(4)일때는 경우의 수가 7이다.

이를 통해 추론해보면 f(n)을 구하기 위한 점화식이 f(n - 1) + f(n - 2) + f(n - 3) 라는 것을 확인할 수 있다.

이 점화식을 이용해서 코드를 짜보니 성공적으로 문제가 풀어졌다.

문제풀이

1
2
3
4
5
6
7
8
9
10
DP = [0] * 11
DP[0:3] = 1,2,4
 
T = int(input())
 
for RPT in range(0,T):
    n = int(input())
    for rpt in range(3,n):
        DP[rpt] = DP[rpt - 1] + DP[rpt - 2] + DP[rpt - 3]
    print(DP[n - 1],end="\n")

'문제 풀이 > Baekjoon Online Judge' 카테고리의 다른 글

[python3] 13458번 시험 감독  (0) 2018.10.15
[python3] 2490번 윷놀이  (0) 2018.10.04
[python3] 10039번 평균 점수  (0) 2018.10.01
[python3] 10872번 팩토리얼  (0) 2018.06.11
[python3] 1094번 막대기  (0) 2018.06.09
댓글
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Total
Today
Yesterday