반응형
- 단순히 문제에 나와있는 P(10)까지의 규칙을 확인해보면
- 해당 위치의 세 번째와 두 번째 위치 전의 값을 더한 값이 현재 위치의 값이 되기에
- dp를 활용해서 풀었으며, li를 초기화하지 않고 전역에 놔두며 계속 추가함으로써
- n-1번째 값이 현재 li에 있다면 바로 출력해 불필요한 시간을 줄이도록 하는 코드를 작성.
li = [1, 1, 1]+[0]*97
for i in range(int(input())):
n = int(input())
if li[n-1] != 0:
print(li[n-1])
continue
for j in range(3, n):
li[j] = li[j-3]+li[j-2]
print(li[j])
'알고리즘' 카테고리의 다른 글
[백준, 1010번] 다리 놓기 (0) | 2023.08.02 |
---|---|
[백준, 2156번] 포도주 시식 (0) | 2023.08.02 |
[백준, 1912번] 연속합 (0) | 2023.08.01 |
[백준, 1932번] 정수 삼각형 (0) | 2023.08.01 |
[백준, 24416번] 알고리즘 수업 - 피보나치 수 1 (0) | 2023.08.01 |