연습장

점프와 순간이동 본문

프로그래머스/2단계

점프와 순간이동

js0616 2024. 5. 20. 15:19

 

점프 k 칸 : 배터리 k 소모

순간이동 : 배터리 소모 x 

 

5000 의 경우  2500 에서 순간이동 한 결과와 같음 .. 배터리 소모 x 

2500 의 경우 1250 에서 순간이동 한 결과와 같음.. 배터리 소모 x 

1250 의 경우 625 에서 순간이동한 결과와 같음 .. 배터리 소모 x 

625 의 경우 624 에서 1칸 점프 한 결과와 같음 .. 배터리 소모 1

5000 -> 2500 -> 1250 -> 625 -> 624 -> 312 -> 156 -> 78 -> 39 -> 38 -> 19 -> 18 -> 9 -> 8 -> 4 -> 2 -> 1 -> 0

 

다음과 같이 총 5번의 점프가 필요하게 되며 result 도 5가 나오게 된다. 

 

즉 n 이 짝수라면 2 로 나누고 , 홀수라면 1을 빼며 result 를 1 증가하면서 값이 0 이 될때까지 진행 

 

 

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

    return ans

 

'프로그래머스 > 2단계' 카테고리의 다른 글

멀리뛰기  (0) 2024.08.09
[mysql] 부모의 형질을 모두 가지는 대장균 찾기  (0) 2024.07.03
짝지어 제거하기  (0) 2024.05.19
카펫  (0) 2024.04.30
피보나치 수  (0) 2024.04.30