최소한의 에너지를 사용하기 위해 2배수로 가는 것이 효율적이고, 2배가고 남는 만큼 점프를 하여 에너지를 소모하게 된다
def solution(n):
answer = 0
while n>0:
answer += (n%2)
n = n//2
return answer
위의 풀이처럼 풀었는데, 다른 분들이 풀이를 보다가 더 신박한 풀이를 발견했다
def solution(n):
return bin(n).count('1')
2로 나누고 나머지를 더하는 과정을 반복하는 것이므로, 결국 2진수로 변환하는 것과 동일한 결과가 나온다. 나머지가 1이 나온 것 = 2진수 자릿수가 1이 나온 것 이므로 2진수로 변환하고 1의 갯수를 구해주면 답을 구할 수 있다. 이 풀이는 시간이 0.00ms가 걸리더라 어메이징!