ABC100 C - *3 or/2에서 배운






솔직히 상쾌했기 때문에
지도를 받았습니다.

고맙습니다.
아래에서 지나갔습니다, 네.

3or/2.py
N = int(input())
A = list(map(int,input().split()))

cnt = 0

for i in range(N):
    while True:
        if A[i]%2 == 0:
            cnt += 1
            A[i] = A[i]//2
        else:
            break

print(cnt)#82ms


사파리 잊고 다시 도전.
어떻게든 다녔다.

포인트는 입력 A 에는 2 가 몇 개 들어 있는지를 확인하는 것.
3을 여러 번 곱해도 2는 증가하지 않습니다. 반면에 어느 것을 반드시 2로 나눕니다.
라고 말하는 것은, 2 가 몇개 들어 있으면 알면 시험 횟수를 알 수 있다.

abc100c.py
N = int(input())
A = list(map(int,input().split()))

cnt = 0
for i in range(N):
    if A[i] % 2 != 0:
        continue
    else:
        while True:
            if A[i]%2 == 0:
                A[i] = A[i]//2
                cnt += 1
            else:
                break
print(cnt)#80ms

좋은 웹페이지 즐겨찾기