본문 바로가기
알고리즘

Python - 초콜릿 식사 (2885) 그리디

by jun.s.gi 2023. 6. 7.
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