본문 바로가기

알고리즘

[백준][KOTLIN] 1932 정수 삼각형

728x90

https://www.acmicpc.net/problem/1932

 

1932번: 정수 삼각형

첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.

www.acmicpc.net

풀이

  • 위의 과정에 나온 규칙성을 이용하여 동적프로그래밍으로 해결한다.

코드

import java.util.*

fun main(args: Array<String>) {
    val sc = Scanner(System.`in`)
    val n = sc.nextInt()
    val input = Array(n + 1) { IntArray(n + 1)}
    val dp = Array(n + 1) { IntArray(n + 1) }

    for (i in 1..n) {
        for (j in 1..i) {
            input[i][j] = sc.nextInt()
            dp[i][j] = input[i][j] + max(dp[i - 1][j - 1], dp[i - 1][j])
        }
    }

    var result = dp[1][1]

    for (i in 2..n) {
        if (result < dp[n][i]) {
            result = dp[n][i]
        }
    }

    println("$result")
}

private fun max(a: Int, b: Int): Int {
    return if (a < b) b else a
}
728x90

'알고리즘' 카테고리의 다른 글

[백준][KOTLIN] 10844 쉬운 계단 수  (0) 2021.12.13
[백준][KOTLIN] 2579 계단 오르기  (0) 2021.12.10
[백준][KOTLIN] 1149 RGB거리  (0) 2021.12.09
[백준][KOTLIN] 9461 파도반 수열  (0) 2021.12.09
[백준][KOTLIN] 1904 01타일  (0) 2021.12.09