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 |