본문 바로가기
Algorithm

백준 9461번 파도반수열

by 2nyong 2023. 3. 16.

규칙에 따라 나선 모양으로 놓여진 정삼각형들 중 N번째 놓여진 정삼각형의 한 변의 길이를 구하는 문제다.

 

N번째 정삼각형의 한 변의 길이를 나열한다면 규칙을 쉽게 찾을 수 있다.

  • P(1) = 1
  • P(2) = 1
  • P(3) = 1
  • P(4) = 2 = P(2) + P(1)
  • P(5) = 2 = P(3) + P(2)
  • P(6) = 3 = P(4) + P(3)
  • P(7) = 4 = P(5) + P(4)
  • P(8) = 5 = P(6) + P(5)
  • P(9) = 7 = P(7) + P(6)
  • P(10) = 9 = P(8) + P(7)
  • ...
  • P(N) = P(N-2) + P(N-3)
import java.util.Scanner;

public class Main {

    static long dp = new long[101];

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        dp[1] = dp[2] = dp[3] = 1L;

        int T = in.nextInt();
        for (int tc = 0; tc < T; tc++) {
            int N = in.nextInt();
            System.out.println(padovan(N));
        }
    }

    public static long padovan(int n) {
        if (dp[n] != 0) {
            return dp[n];
        }

        return dp[n] = padovan(n - 2) + padovan(n - 3);
    }
}

'Algorithm' 카테고리의 다른 글

백준 1932번 정수 삼각형  (0) 2023.03.16
백준 1149번 RGB거리  (0) 2023.03.16
백준 9184번 신나는 함수 실행  (0) 2023.03.15
백준 11053번 가장 긴 증가하는 부분 수열  (0) 2023.03.15
백준 2579번 계단 오르기  (0) 2023.03.14

댓글