아이디어:
정확하게 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)
'알고리즘💻 > 그리디' 카테고리의 다른 글
BOJ 11047번: 동전 0 (0) | 2021.01.15 |
---|---|
BOJ 11399번: ATM (0) | 2021.01.15 |
BOJ 1080번: 행렬 (0) | 2021.01.12 |
BOJ 4796번: 캠핑 (0) | 2021.01.11 |
BOJ 16206번: 롤케이크 (0) | 2021.01.11 |