algorithm/Greedy

백준 2839 설탕배달

hw.kr 2022. 8. 29. 21:09

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

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

📌 해결순서

1. 사용하는 봉지의 갯수를 최소화 해야 하므로, 3kg 보다 5kg를 최대한 많이 이용해야한다.

2. 설탕의 무게가 5로 나누어질 때까지 3을 빼주고 cnt += 1 을 해준다.

3. while 문을 빠져나왔을때 설탕의 무게가 음수라면 정확하게 N kg를 만들수 없음을 의미한다.

📌 코드

while문 에서도 else를 사용해서 훨씬 코드를 간결하게 만들수 있다.

import sys
input = sys.stdin.readline

sugar = int(input())

cnt = 0

while sugar >= 0:
    if sugar % 5 == 0:
        cnt += sugar // 5
        print(cnt)
        break

    sugar -= 3
    cnt += 1
else:
    print(-1)