코딩 테스트/LeetCode(swift)

[LeetCode] 55. Jump Game

Skillist 2022. 2. 20. 01:11
반응형

문제

https://leetcode.com/problems/jump-game/

 

Jump Game - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

———————————————————————————

 

잠깐만

이중 포문이 생각날수 있는데, 참아보세요.

———————————————————————————

 

코드

class Solution {
    func canJump(_ nums: [Int]) -> Bool {
        var maxJumps = 1
    
        for index in 0..<nums.count {
            maxJumps -= 1
            maxJumps = max(maxJumps, nums[index])
        
            if maxJumps == 0 {
                if index == nums.count - 1 {
                    return true
                }
                return false
            }
        }
        return true
    }
}

———————————————————————————

 

설명

jump의 값이 3이라 하여, 무조건 3단계를 jump할 필요는 없습니다.

또한, 최대, 최소 이동 횟수를 구하는게 아니라, 이동 가능 여부만 확인합니다.

따라서, max jump의 값을 저장하며 1단계씩 이동하면 됩니다. 이동 가능 여부만 확인하면 되니깐요.

물론 다음 step으로 이동하면, jump의 값을 1 감소 시켜야 합니다.

문제가 심플하고, 쉬운편이기 때문에 따로 부가 설명은 하지 않겠습니다.

———————————————————————————

 

회고

이렇게 75개의 추천문제 중 DP문제는 모두 풀어봤습니다.

어떠세요???

 

저는 DP 문제의 난이도가 생각보다 낮아서 놀랐습니다.

DP를 깊게 공부하고 싶다면, 백준 사이트의 DP 문제를 추천합니다.

https://www.acmicpc.net/problemset?sort=ac_desc&algo=25

 

문제 - 1 페이지

 

www.acmicpc.net

블로그에 글을 작성하진 않았지만,

몇년전 쯤, 백준 사이트에서 37개의 DP 문제를 순서대로 쭈욱 풀어본적이 있습니다.

저도 몰랐는데, 방금 확인해보니 꽤 많은 DP 문제를 풀었네요.

 

오랜만에 알고리즘 문제를 빡세게 풀어보니, 어지럽네요.

우리, 다음 문제도 화이팅해봐요!

반응형