본문 바로가기

IT/알고리즘

[백준] 11048번 이동하기

728x90
SMALL

N x M으로 dp로 문제 구하는 방법

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

fun main() = with(Scanner(System.`in`)) {
    val x = nextInt()
    val y = nextInt()
    val array: Array<Array<Int>> = Array(x) { Array(y) { 0 } }
    val dp: Array<Array<Int>> = Array(x) { Array(y) { 0 } }
    for (i in 0 until x) {
        for (j in 0 until y) {
            val value = nextInt()
            array[i][j] = value
            dp[i][j] = value
        }
    }

    for (i in 0 until x) {
        for (j in 0 until y) {
            if (i + 1 < x) {
                dp[i + 1][j] = max(dp[i][j] + array[i + 1][j], dp[i + 1][j])
            }
            if (j + 1 < y) {
                dp[i][j + 1] = max(dp[i][j] + array[i][j + 1], dp[i][j + 1])
            }
        }
    }

    println(dp[x - 1][y - 1])
}
728x90
LIST

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

[백준] 14502번 연구소  (0) 2024.12.16
[백준] 16917번 양념 반 후라이드 반  (0) 2024.12.11
[백준] 11651번 좌표정렬하기_2  (3) 2024.12.09
[백준] 14225번 부분수열의 합  (0) 2024.12.09
[백준] 차량번호판  (0) 2024.12.05