문제: 2885번 초콜릿 식사

Sungmin·2023년 3월 23일
0

https://www.acmicpc.net/problem/2885


Solution

k = int(input())
size = 1
count = 0

while size < k:
    size *= 2
    
result = size

while k > 0:
    if k >= size:
        k -= size
    else:
        size //= 2
        count += 1

print(result, count)

배운점

6개를 상근이가 먹으려면 8개짜리의 초콜릿을 구매해야 하고, 8개는 (4, 4)로 쪼개지기 때문에
한번 더 쪼개서 (2, 2, 2, 2)로 나눠야 한다.
그럼 상근이가 6개를 먹고 선영이에게 2개를 줄 수 있다.
예제에서 주어진 값을 넣었을 경우 어떻게 풀이가 진행되는지 따로 적어보고
그에 맞는 코드를 생각해 내는게 핵심이라고 느꼈다.

profile
Let's Coding

0개의 댓글