본문 바로가기

코딩 테스트/백준(java)

DP - 11726. 2×n 타일링

반응형

문제

www.acmicpc.net/problem/11726

 

11726번: 2×n 타일링

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.

www.acmicpc.net

 

잠깐만

참고로, 결과 값은 10007로 나눈 값입니다

 

코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());

		int target = Integer.parseInt(st.nextToken());
		int[] results = new int[target+1];
		results[0] = 1;
		results[1] = 1;
		
		for (int i = 2; i <= target; i++) {
			results[i] = (results[i-1] + results[i-2])%10007;
		}
		System.out.println(results[target]);
	}
}

 

설명

이 문제 또한 이전 문제들과 같이 더하면서 나아가는 로직입니다.

results[k]는 results[k-1]의 모양들 마지막에 1*2 블록을 추가하고,

results[k-2]의 모양들 마지막에 2*2블록 2개를 추가한 모양이에요.

따라서 results[k]는 results[k-1] + results[k-2]입니다.

 

회고

회고는 없습니다 ㅠㅜ

 

 

반응형

'코딩 테스트 > 백준(java)' 카테고리의 다른 글

DP - 2579. 계단 오르기  (0) 2021.03.27
DP - 1149. RGB거리  (0) 2021.03.27
DP - 1003. 피보나치 함수  (0) 2021.03.25
DP - 9095. 1, 2, 3 더하기  (0) 2021.03.25
DP - 1463. 1로 만들기  (0) 2021.03.25