[백준] 9461번 : 파도반 수열

2021. 4. 21. 12:01백준

 

 

 

접근법 

- 나선 모양 중에서 반복이 되는 1과 2를 뛰어넘고 3부터 규칙을 찾아보았다. 

 

- 3을 기준으로 맨 처음의 값(P[1], 편의 상 P[0]는 건너뛰고 1부터 시작했다.)과 맨 마지막 값(P[3 - 1])을 더하니 3이 나오는 것을 알 수 있었다.

 

- 그 다음 값인 4는 P[2]와 P[4 - 1], 5는 P[3]와 P[5 - 1] 이런 규칙이 있다는 것을 알 수 있었다.

 

- start_idx를 1로 설정하고 3의 인덱스인 6부터 N의 최댓값인 100까지의 for문을 돌면서 P[i]의 값을 구하고 start_idx를 1씩 올려주며 값을 계산했다.

 

- 다 풀고 다른 분들은 어떻게 풀었나 봤더니 P[i + 3] = P[i] + P[i + 1] 규칙을 이용해서 풀었다. 

 

 

 

 

 

풀이

# 백준 9461번 : 파도반 수열

num = int(input())
P = [0 for _ in range(101)]

P[1] = 1
P[2] = 1
P[3] = 1
P[4] = 2
P[5] = 2

start_idx = 1

for i in range(6, len(P)) :
    P[i] = P[i - 1] + P[start_idx]
    start_idx += 1

for _ in range(num) :
    N = int(input())
    print(P[N])

 

 

 

 

 

결과

'백준' 카테고리의 다른 글

[백준] 10844번 : 쉬운 계단 수  (0) 2021.04.22
[백준] 1932번 : 정수 삼각형  (0) 2021.04.21
[백준] 2579번 : 계단 오르기  (0) 2021.04.20
[백준] 1904번 : 01타일  (1) 2021.04.20
[백준] 1003번 : 피보나치 함수  (0) 2021.04.19