백준|11726번|2×n 타일링

JSK·2022년 7월 31일
0

자바 PS풀이

목록 보기
21/51

문제설명
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 문제입니다.

작동 순서
1. 직사각형의 크기 n을 입력받습니다.
2. 계산을 해보면 2×n 크기의 직사각형을 채우는 방법의 수는 2×(n-1) 크기의 직사각형을 채우는 방법의 수+2×(n-2) 크기의 직사각형을 채우는 방법의 수와 같다는 것을 알 수 있습니다.
3. 각 n번째에 (n-1)의 값+(n-2)의 값을 넣어줍니다.
4. n번째 값을 출력합니다.

소스코드

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[1001];
        dp[1]=1;
        dp[2]=2;
        for(int i=3;i<1001;i++) dp[i]=(dp[i-1]+dp[i-2])%10007;
        System.out.print(dp[n]);
    }
}

후기
굉장히 간단한 DP문제라서 쉽게 풀 수 있었습니다. 숫자로는 간단한 규칙이 나와서 풀 수 있었는데 막상 설명을 하려고 하니 쉽지 않네요. 문제를 푸는 것 뿐만 아니라 그 답에 대해서 좀 더 깊게 생각을 해봐야 할 것 같습니다.

profile
학사지만 AI하고 싶어요...

0개의 댓글