본문 바로가기
코딩테스트 준비(kotlin)/DFS, BFS

[프로그래머스 kotlin] 숫자 변환하기

by 1chanhue1 2024. 7. 3.

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
    }
}