본문 바로가기

백준 문제 풀이 및 피드백

2023.01.23 파도반 수열 백준[파이썬]

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

 

9461번: 파도반 수열

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

www.acmicpc.net

 

import sys
input = sys.stdin.readline

n = int(input().strip())

num_list = [int(input().strip()) for _ in range(n)]
max_num = max(num_list)

answer_list = [0,1,1] + ([0] * (max_num-2))
for num in num_list:
    if answer_list[num] == 0:
        for i in range(3,num+1):
            answer_list[i] = answer_list[i-2] + answer_list[i-3]
    print(answer_list[num])

처음에는 어떻게 풀지 막막했지만 자신의 위치에 2개전과 3개전 값을 더한값이 현재 값이라는 규칙을 발견을 해서 풀었다. 이 문제는 규칙을 발견하기만 하면 쉽게 풀리는 문제 같다.