https://www.acmicpc.net/problem/13699
난이도 : 실버 4
태그 : 다이나믹 프로그래밍
설명
규칙성을 찾아 풀이하는게 아닌,
그냥 이전에 구한 값을 사용해 다음 값을 구하는 문제입니다.
그냥 점화식을 그대로 소스코드로 옮기면 됩니다.
소스코드
fun main() {
val br = System.`in`.bufferedReader()
val n = br.readLine().toInt()
val t = Array(n + 1) { 0L }
t[0] = 1
for (i in 1..n)
for (k in 0 until i)
t[i] += t[k] * t[i - k - 1]
println(t[n])
}
후기
당연히 규칙성을 찾아 풀이하는 문제인 줄 알았는데,
규칙성도 딱히 안보이고... 시간 제한도 5초길래
혹시...? 하는 생각에 그냥 점화식을 그대로 썼더니 통과했습니다.
이전에 구한 값을 이용한다는 점에서
다이나믹 프로그래밍이긴 하지만, 구현 태그도 들어갔으면 좋겠네요.
'코딩테스트 > Kotlin' 카테고리의 다른 글
[백준 16430번] [Kotlin] 제리와 톰 (0) | 2022.11.25 |
---|---|
[백준 2193번] [Kotlin] 이친수 (0) | 2022.11.24 |
[백준 9625번] [Kotlin] BABBA (1) | 2022.11.24 |
[백준 5789번] [Kotlin] 한다 안한다 (0) | 2022.11.23 |
[백준 3182번] [Kotlin] 한동이는 공부가 하기 싫어! (0) | 2022.11.18 |