알고리즘 정복하기!/백준 문제풀이

백준 9461번 Python / Dynamic Programming

by seokii 2022. 2. 11.
728x90
반응형

문제 링크

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

 

9461번: 파도반 수열

오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의

www.acmicpc.net

 

풀이

T = int(input())
arr = [0] * 101
arr[0] = 1
arr[1] = 1
arr[2] = 1

for i in range(0,98):
    arr[i+3] = arr[i] + arr[i+1]

for _ in range(T):
    n = int(input())
    print(arr[n-1])

1 1 1 2 2 3 4 5 7 9 12 16 ...

규칙을 보면 i+3 번째의 수가 i 번째와 i+1 번째의 합인 규칙을 발견할 수 있습니다.

따라서, 해당 규칙으로 100개의 수를 리스트에 만들어 저장한 후,

입력을 받아 출력만 해주면 끝입니다!

처음에 arr리스트에 0을 101개 채운 이유는 for문에서 0~98 범위에서 +3번째까지 지정하기 때문에 100으로 하면 range오류가 발생합니다.

 

 

728x90
반응형

'알고리즘 정복하기! > 백준 문제풀이' 카테고리의 다른 글

백준 1049번 Python / Greedy  (0) 2022.02.11
백준 1439번 Python / Greedy  (0) 2022.02.11
백준 2609번 Python / Math  (0) 2022.02.11
백준 10610번 Python / Greedy  (0) 2022.02.10
백준 1929번 Python / Math  (0) 2022.02.10

댓글