DHistory
[Baekjoon] Greedy - 2885 초콜릿 식사 본문
문제
풀이
"""
막대는 정사각형 N개
초콜릿의 크기는 항상 2의 제곱 형태 (1, 2, 4, 8, 16 ...)
K개 정사각형을 먹어야함.
나머지 초콜릿은 선영이를 준다.
항상 가운데로만 쪼개진다.
D개 있는 막대는 D/2개 막대 두 조각으로 쪼개진다.
K개 정사각형을 만들기 위해서 몇 번의 초콜릿을 쪼개야 하는지와 사야하는 가장 작은 초콜릿의 크기는?
"""
k = int(input())
def solution(k):
binary = bin(k)[2:][::-1]
# 2의 거듭제곱인 경우 쪼갤 필요가 없다.
if binary.count('1') == 1:
return [k, 0]
return [2**len(binary), len(binary) - binary.find('1')]
print(*solution(k))
채점 결과
'Computer Science > Algorithm' 카테고리의 다른 글
[Baekjoon] Greedy - 16112 5차 전직 (0) | 2023.08.25 |
---|---|
[Baekjoon] Greedy - 21314 민겸 수 (0) | 2023.08.25 |
[Baekjoon] Greedy - 11501 주식 (0) | 2023.08.24 |
[Baekjoon] Greedy - 1541 잃어버린 괄호 (0) | 2023.08.24 |
[Baekjoon] Greedy - 1213 팰린드롬 만들기 (0) | 2023.08.24 |