알고리즘💻/그리디
BOJ 2839: 설탕 배달
호프
2021. 1. 15. 22:56
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
아이디어:
정확하게 N킬로그램을 만들 수 있는 경우, 5킬로그램으로 나누는 경우가 많을 수록 봉지의 개수가 적어진다.
따라서 N을 5킬로그램으로 나눌 수 있는 최대 수(N//5) ~ 최소 수(0) 까지 줄여가면서 N킬로그램이 정확하게 나누어 떨어지는 경우 봉지의 개수를 출력한다. 만약 5킬로그램 봉지가 0개인데도 N이 나누어지지 않는다면 -1을 출력한다.
코드:
import sys
n = int(sys.stdin.readline())
a = n//5 #N킬로그램을 5킬로그램 봉지에 나누어 넣을 수 있는 최대 수
ans = 0
for i in range(a, -1, -1):
b = (n - (5*i)) % 3
if (b == 0):
ans = i + (n - (5*i))//3
break
if (ans == 0 ):
print(-1)
else:
print(ans)