기록하고 까먹지 말기

9095 본문

전공/백준

9095

yha97 2022. 11. 2. 14:24

날짜 : 2022. 11. 02

사용 언어 : python

 

문제

 

 

코드

import sys

t = int(sys.stdin.readline())
arr = [0] * 12
arr[1] = 1
arr[2] = 2
arr[3] = 4
for i in range(4, len(arr)):
    arr[i] = arr[i-1] + arr[i-2] + arr[i-3]

for _ in range(t):
    n = int(sys.stdin.readline())
    print(arr[n])

 

 

알게된 점

- 해당 문제에서 4를 표현하기 위해서는 3 + 1, 2 + 2, 1 + 3. 즉, 3가지 경우로 표현할 수 있다.

- 이를 점화식으로 정리하면 a[n] = a[n-1] + a[n-2] + a[n-3]이라는 식으로 정리할 수 있다.

- 또한 반복문을 통해 재귀를 없애야 한다는 점, 최대  n값이 11이라는 점을 이용해 해당 리스트를 미리 돌려 값을 도출한 후 입력한 값에 따라 아웃풋을 출력하는 방식으로 문제를 해결했다.

 

참고 사이트

 

'전공 > 백준' 카테고리의 다른 글

11659  (0) 2022.11.04
11726  (0) 2022.11.02
11724  (0) 2022.11.01
4949  (0) 2022.11.01
7576  (0) 2022.11.01