[プログラマー/python]2段目のジャンプと瞬間移動



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

問題を解く


なぜ第二段階なのかはわかりませんが(?)与えられたNから、逆偶数面を2に分け、奇数面を1抜き、電池使用量+1とする.
もっと簡単なコードはプログラマーに見つかったのですが、この考えはどうやって...
バイナリ変換で1の個数を求めるのが正解です.

ソースコード

def solution(n):
    cnt=0
    while n:
        if n%2==0:
            n=n//2
        else:
            n-=1
            cnt+=1
    return cnt
より単純なコード
def solution(n):
    return bin(n).count('1')