문제 요약:
n을 입력 받았을 때, 그 n의 값을 64, 32, 16, 8, 4, 2, 1(cm) 막대기를 몇 개 이어야 만들 수 있을까?
23은 16+4+2+1 이므로 4개.
이 문제를 딱 보면 2진수가 생각난다.
2진수는 수를 다음과 같이 표현한다.
101010101010..
이때
일의 자리수는 2^0
십의 자리수는 2^1..처럼
수를 나타내므로
위 문제와 완벽히 똑같아 진다.
따라서 코드는 다음과 같다.
한 줄로 쓸 수 있을 정도로 간단한 문제이다.
input()으로 받아서 int형으로 변환후, 이를 bin() 을 통해 2진수로 바꾼다.
이후 count('1')을 통해 1의 개수를 센다.
'소프트웨어 > 백준' 카테고리의 다른 글
백준 BOJ <1085번> 직사각형에서 탈출 || 파이썬 (0) | 2023.08.23 |
---|---|
백준 BOJ <1076번> 저항 || 파이썬 (0) | 2021.05.12 |
백준 BOJ <1075번> 나누기 || 파이썬 (0) | 2021.05.12 |
백준 BOJ <1037번> 약수 || 파이썬 (0) | 2021.05.12 |
백준 BOJ <1010번> 다리 놓기 || 파이썬 (0) | 2021.05.12 |
댓글