728x90
https://www.acmicpc.net/problem/2885
2885번: 초콜릿 식사
학교 근처 편의점에 새 초콜릿이 들어왔다. 이 초콜릿은 막대 모양이고, 각 막대는 정사각형 N개로 이루어져 있다. 초콜릿의 크기(정사각형의 개수)는 항상 2의 제곱 형태이다. 즉, 1, 2, 4, 8, 16, ...
www.acmicpc.net
import sys
k = int(sys.stdin.readline().strip())
cho = [2 ** i for i in range(21) if k > 2 ** i]
k_copy = k
ans = ''
cut = cho[-1] * 2
k = bin(k).lstrip('0b').rstrip('0')
print(cut, len(k) if cut != k_copy else 0)
# 1) k를 2진수로 바꾸고 옆에 붙은 0을 모두 제거합니다.
# 2) 남은 길이가 최소 횟수와 같습니다.
728x90
'알고리즘' 카테고리의 다른 글
Python - 보석 쇼핑 (투 포인터) (0) | 2023.06.10 |
---|---|
Python - 두 수의 합(3273) 투 포인터 (0) | 2023.06.09 |
Python - 2048 (Easy) (12100) 구현, 브루트포스 (0) | 2023.06.06 |
Python - 걷기 (1459) 그리디 (0) | 2023.06.05 |
Python - 치즈 (2636) BFS (0) | 2023.06.03 |