[BOJ Gold 5]配列脱出
質問する
https://www.acmicpc.net/problem/11909
に答える
import java.lang.Math.*
fun main() = with(System.`in`.bufferedReader()) {
val n = readLine().toInt()
val map = Array(n){
List(n){0}
}
for(i in 0 until n){
map[i] = readLine().split(" ").map{it.toInt()}
}
val dp = Array(n){
MutableList(n){0}
}
dp[0][0] = 0
for(i in 1..n-1){
dp[0][i] = dp[0][i-1]
dp[i][0] = dp[i-1][0]
if(map[0][i-1]<=map[0][i]){
dp[0][i] += (map[0][i]-map[0][i-1]+1)
}
if(map[i-1][0]<=map[i][0]){
dp[i][0] += (map[i][0]-map[i-1][0]+1)
}
}
for(i in 1 until n){
for(j in 1 until n){
val down = if(map[i-1][j] <= map[i][j]){
dp[i-1][j] + (map[i][j]-map[i-1][j]+1)
}
else{
dp[i-1][j]
}
val right = if(map[i][j-1] <= map[i][j]){
dp[i][j-1] + (map[i][j]-map[i][j-1]+1)
}
else{
dp[i][j-1]
}
dp[i][j] = min(down,right)
}
}
println(dp[n-1][n-1])
}
Reference
この問題について([BOJ Gold 5]配列脱出), 我々は、より多くの情報をここで見つけました https://velog.io/@jihoon97/BOJ-골드5-배열-탈출テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol