11727번: 2xn 타일링 2백준/문제2023. 8. 17. 14:24
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/11727
언어 : Kotlin
문제 설명 :
2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.
아래 그림은 2×17 직사각형을 채운 한가지 예이다.
- 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)
- 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 256MB
입출력 예 :
입력 | 출력 |
2 | 3 |
8 | 171 |
12 | 2731 |
풀이 :
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val n = br.readLine().toInt()
val dp = IntArray(1001)
dp[1] = 1
dp[2] = 3
(3..n).forEach { dp[it] = (dp[it - 1] + 2 * dp[it - 2]) % 10007 }
bw.write("${dp[n]}")
bw.flush()
bw.close()
}
이전에 푼 문제의 연장성에 있는 문제다.
2x2 타일이 하나 더 늘었다.
https://small-stepping.tistory.com/526
'백준 > 문제' 카테고리의 다른 글
2805번: 나무 자르기 (0) | 2023.08.18 |
---|---|
1541번: 잃어버린 괄호 (0) | 2023.08.18 |
7576번: 토마토 (0) | 2023.08.17 |
14940번: 쉬운 최단거리 (0) | 2023.08.16 |
1931번: 회의실 배정 (0) | 2023.08.16 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!