Posts [알고리즘] 백준 1094 - 막대기
Post
Cancel

[알고리즘] 백준 1094 - 막대기


문제

1094 - 막대기


접근

문제를 쉽게 보면, 결국 주어지는 n을 2의 제곱수들의 합으로 표현하는 방법 중 가장 적은 항의 개수를 묻는 것이다.
예를 들어, 23은 16+4+2+1로 표현할 수 있고, 이 것보다 짧게 표현하는 것은 불가능하다.


코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
n = int(input())

nowN = 64
ans = 0
while n:
    if nowN <= n:
        n -= nowN
        ans+=1
    nowN //= 2
print(ans)


This post is licensed under CC BY 4.0 by the author.