문제 링크

정답 :

def solution(num_list):
    answer = 0
    
    for i in num_list:
        while not i == 1:
            if i % 2 == 1:
                i = (i - 1) // 2
                answer += 1
            else:
                i //= 2
                answer += 1
    
    return answer

개선 1.

def solution(num_list):
    answer = 0
    
    for i in num_list:
        while not i == 1:
            i //= 2
            answer += 1
    
    return answer

방법 1.

def solution(num_list):

    return sum(len(bin(i)) - 3 for i in num_list)

문제 풀이의 핵심

  1. 정수의 나누기 연산 과정:
  2. 이진수에서 의미하는 것:
  3. 이진수 표현 활용:

코드 분석

def solution(num_list):

    return sum(len(bin(i)) - 3 for i in num_list)
  1. bin(i):
  2. len(bin(i)):