본문 바로가기
알고리즘/BOJ

[BOJ] 9461번 파도반 수열 / 사용언어 : 파이썬(python)

by 바른 호랑이 2021. 12. 22.
728x90
반응형

※ 문제링크

 

9461번: 파도반 수열

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

www.acmicpc.net

해당 문제는 문제의 규칙을 이용하여 배열을 만들어 푸는 문제였다. 피보나치 수열과 비슷한 규칙을 가지고 있다고 문제에서 사전에 조건을 주었기에 비교적 쉽게 규칙을 발견할 수 있었다. 해당 문제의 규칙은 3까지는 1의 값을 가지다가 그 이상이 되면 N은 값이 N-3의 값과 N-2의 값을 더한 값이 되는 것이었다. 규칙을 알고나니 구현하는 것은 어렵지 않았다. 문제를 푸는 방법과 코드는 아래와 같다.

1. 입력값을 받고 그 길이 만큼 배열을 생성한다.

2. 생성한 배열에 반복문을 돌려서 값을 부여한다.

 

import sys
input = sys.stdin.readline
T = int(input())
for _ in range(T):
    N = int(input())
    arr = [0 for _ in range(N)]
    for i in range(N):
        if i < 3:
            arr[i] = 1
        else:
            arr[i] = arr[i-3] + arr[i-2]
    print(arr[N-1])

 

P.S 개발자가 되기위해 공부중입니다. 잘못된 부분을 댓글로 남겨주시면 학습하는데 큰 도움이 될 거 같습니다.

728x90
반응형

댓글