본문 바로가기

Algorithm/Programmers

[Programmers/Level 3/Java] 2 x n 타일링

Programmers(프로그래머스) 2 x n 타일링

 

코딩테스트 연습 - 2 x n 타일링

가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 ��

programmers.co.kr

문제 설명

가로 길이가 2이고 세로 길이가 1인 직사각형 모양의 타일을 가지고 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우는 방법의 수를 구하라.

풀이

아래 백준 11726번 2×n 타일링 풀이 참고하자.
조건만 조금 다를 뿐, 동일한 문제이다.

 

[Baekjoon/Silver 3/Java] 11726번: 2×n 타일링

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

lionem2018.tistory.com

구현 코드는 다음과 같다.

import java.util.*;

class Solution {
    int solution(int n) {
    	int answer = 0;
        int[] cntWays = new int[n+1];
        
        cntWays[0] = 1;
        cntWays[1] = 1;
        
        for(int i = 2; i <= n; i++)
            cntWays[i] = (cntWays[i-2] + cntWays[i-1])% 1000000007;
        
        answer = cntWays[n];
        return answer;
    }
}