https://www.acmicpc.net/problem/1094

 

1094번: 막대기

지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대

www.acmicpc.net

문제

지민이가 원하는 X cm 길이의 막대기를 만드려고 하는데,

이 때, 64cm 막대기부터 시작해서 막대기를 반 씩 잘라서 만드는 과정을 몇 번 반복하면 되는가 하는 문제입니다.

 

풀이

64cm를 반 씩 자르면, 나올 수 있는 길이는 1, 2, 4, 8, 16, 32, 64입니다.

결국에는 이진법으로 나타냈을 때 1이 몇개 있는지 묻는 문제입니다.

 

48 = 0110000(2)

 

X=int(input())
count = 0

while X!=0:
    if X%2==1:
        count+=1
    X=X//2
print(count)

+ Recent posts