프로그래머스 level2 점프와 순간이동

Kim Yongbin·2023년 9월 3일
0

코딩테스트

목록 보기
27/162

Problem

Solution

def solution(n):
    ans = 0
    
    while n > 0:
        if n % 2 == 0:
            n = n/2
        
        else:
            n -= 1
            ans += 1
    return ans

# 1. 거리 *2 로 순간이동 => 소모 X
# -> idx *2 
# 2. K칸 점프  => k 소모
# -> idx + k

배터리 소모를 최소화하기 위해서는 점프하는 것을 최소화하여야 한다.

따라서, 주어진 n을 2로 나누면서 짝수일 때는 2로 나누고(순간이동), 홀수일 때는 1을 빼는(점프)를 반복하면 된다.

Reference

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

profile
반박 시 여러분의 말이 맞습니다.

0개의 댓글