Skip to content

[Algorithm] 점프와 순간이동 #41

@hwangJi-dev

Description

@hwangJi-dev

💬 문제

[코딩테스트 연습 - 점프와 순간 이동](https://school.programmers.co.kr/learn/courses/30/lessons/12980)


💬 Idea

  • K 칸을 앞으로 점프할 때만 건전지 사용량이 K만큼 든다.
  • (현재까지 온 거리) x 2로 순간이동 할 수 있는 부분을 최대한 활용하여야 최소의 건전지 사용량을 도출할 수 있다.
    • 따라서 n의 값이 0이 될 때까지 반복문을 돌리면서
    • n이 2로 나누어질 수 있다면 순간이동을 시키고,
    • n이 2로 나누어질 수 없다면 (홀수라면) n의 값에서 1을 뺀 후 건전지 사용량에 1을 더해주며 최소의 건전지 사용량을 도출한다.

💬 풀이

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

    return ans
}

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions