μ΅œλŒ€ 1 λΆ„ μ†Œμš”

πŸ“ [S3_11727] 2*n 타일링 2

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


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());

		int[] dp = new int[N+1];

		dp[0] = 1;
		dp[1] = 3;
		for(int i=2; i<N; i++) {
			dp[i] = (dp[i-1] + 2*dp[i-2]) % 10007;
		}

		System.out.println(dp[N-1]);
	}
}

πŸ€” λ‚˜μ˜ 생각

문제λ₯Ό 보고 κ³ λ―Όν•˜λ‹€κ°€ λ¨Όμ € λͺ‡κ°œλ₯Ό λ‚˜μ—΄ν•΄λ³΄μ•˜λ‹€.
μ›λž˜ 방법을 찾지 λͺ»ν• λ•ŒλŠ” 직접 ν•΄λ³΄λŠ”κ²Œ 졜고..

n =1,2,3 κΉŒμ§€ λ‚˜μ—΄ν•΄λ³΄μ•˜λŠ”λ° κ·œμΉ™μ„ 찾을 수 μžˆλ‹€.
dp[i] = dp[i-1] + 2*dp[i-2]
이 곡식을 ν™œμš©ν•΄μ„œ λ¬Έμ œμ—μ„œ 10007둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€κ°’μ„ κ΅¬ν•˜λ©΄ λœλ‹€.