안녕하세요 :)
프로그래머스 점프와 순간 이동 문제입니다.
https://programmers.co.kr/learn/courses/30/lessons/12980
풀이
문제를 잘보면 홀수가 나오면 무조건 점프로 한칸 이동해야합니다.
순간이동으로는 (현재까지 온 거리) x 2 로 이동할 수 있기 때문이죠.
(즉, 순간이동을 하면 짝수가 나오므로 짝수면 건전지 사용량이 들지 않는다.)
그렇다면, 건전지 사용량을 최소로 이용하는 방법은 홀 수 일때만 점프로 한칸이동 하는 것이 되겠습니다.
N = 5일때 답이 되는 경우
N = 6일때 답이 되는 경우
n을 2로 나누어주면서 홀수가 나온다면 ans += 1을 해줍니다.
def solution(n):
ans = 0
while n > 0:
if n % 2 == 1:
ans += 1
n //= 2
return ans