[프로그래머스 | Python] 점프와 순간 이동

게으른 완벽주의자·2023년 2월 3일
0

프로그래머스

목록 보기
37/83
post-custom-banner

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

최소한의 에너지를 사용하기 위해 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가 걸리더라 어메이징!

profile
데이터를 공부하고 있습니다
post-custom-banner

0개의 댓글