본문 바로가기

Study/BaekJoon

[백준 자바JAVA] 13301번 - 타일 장식

728x90

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

 


● 문제

일반적인 피보나치 수열을 활용한 문제에서 변형된 문제이다!

피보나치 수열과는 다르게 각 변을 더한 둘레를 구하는 것이므로 일단 한번 작성해 보았다.

입력(N) 1 2 3 4 5 6 7 8 9
둘레값 4 6 10 16 26 42 68 110 178
증가 2 4 6 10 16 26 42 68 110

 

1, 1, 2, 3, 5, 8 ... 처럼 증가하는 피보나치 수열처럼 둘레값 역시 피보나치 수열처럼 올라가는 것을 확인할 수 있다

그리고 서브 태스크상에 long 자료형을 사용하라고 나와있으므로 해당 부분까지 반영해준다.


● 코드

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int N = Integer.parseInt(br.readLine());
        long[] dp = new long[81];

        dp[1] = 4;
        dp[2] = 6;

        for(int i = 3; i <= N; i++) {
            dp[i] = dp[i-2] + dp[i-1];
        }
        System.out.println(dp[N]);
    }
}

728x90