[프로그래머스] 멀리 뛰기(Kotlin)

0

프로그래머스

목록 보기
112/128
post-thumbnail

[프로그래머스] 멀리 뛰기(Kotlin)

풀이

class Solution {
    val MOD = 1234567
    
    //메모이제이션
    //RES[x]: x칸을 이동하는 방법의 수
    var RES = Array<Long>(2001){-1L}
    
    fun move(n:Int):Long{
        if(n == 0) return 0L //이동할 수 없음
        if(n == 1) return 1L //1칸
        if(n == 2) return 2L //1칸 1칸, 2칸
        
        //이미 계산한 적 있는 경우,
        if(RES[n] != -1L) return RES[n]
        
        //계산하기
        var result = 0L
        //1칸 + (n-1)칸 이동
        result += move(n-1) % MOD
        //2칸 + (n-2)칸 이동
        result += move(n-2) % MOD
        
        RES[n] = result % MOD 
        return RES[n]
    }
    
    fun solution(n: Int): Long {
        var answer: Long = move(n)
        return answer
    }
}
profile
Be able to be vulnerable, in search of truth

0개의 댓글