[프로그래머스 / Swift] Lv.2 - 점프와 순간 이동

박준혁 - Niro·2024년 4월 8일
1

프로그래머스

목록 보기
9/12
post-thumbnail

🔗 문제 링크


https://school.programmers.co.kr/learn/courses/30/lessons/12980

✅ 풀이


최소값을 구하는 문제여서 DP 로 풀어야하나 싶었다.
고민... 고민....을 해보니 짝수일때 순간이동이 가능하다는 것을 발견했다!

n 으로 가기 위해선 n/2 에서 순간 이동하는 것이 최선의 방법이다.

⌨️ 풀이 방법

func solution(_ n:Int) -> Int {
    var num  = n
    var result = 0
    
    while num != 0 {
        if num % 2 == 0 {
            num /= 2
        } else {
            num -= 1
            result += 1
        }
    }
    
    return result
}

n 이 짝수 일때는 n 을 2 로 그냥 나누기만 하면 되고
만약 홀수라면 n 에 1 을 빼서 짝수로 만들고 배터리 사용량을 1 증가시키면 됩니다.

즉, 순간이동을 최대한 많이 사용하는 방식이 배터리 사용을 줄일 수 있는 문제였습니다!

profile
📱iOS Developer, 🍎 Apple Developer Academy @ POSTECH 1st, 💻 DO SOPT 33th iOS Part

0개의 댓글