import kotlin.math.*
class Solution {
fun solution(x: Int, y: Int, n: Int): Int {
var answer = -1
var dp = Array<Int> (y+1) { 1_000_001 }
dp[x] = 0
for(index in x..y) {
if(dp[index] == 1_000_001) {
continue
}
if (index + n <= y) {
dp[index + n] = min(dp[index+n], dp[index] + 1)
}
if(index * 2 <= y) {
dp[index*2] = min(dp[index*2], dp[index] + 1)
}
if(index * 3 <= y) {
dp[index*3] = min(dp[index*3], dp[index] + 1)
}
if(dp[y] != 1_000_001) {
answer = dp[y]
break
}
}
return answer
}
}
'코딩테스트 준비(kotlin) > DFS, BFS' 카테고리의 다른 글
[프로그래머스,kotlin] 네트워크 (0) | 2024.08.06 |
---|---|
[프로그래머스, kotlin] 타겟넘버 (0) | 2024.06.28 |
[프로그래머스 , kotlin] 피로도 (0) | 2024.06.27 |
[kotlin] 백준 1280 DFS와 BFS (0) | 2023.10.27 |