상근이는 요즘 설탕공장에서 설탕을 배달하고 있습니다. 그는 사탕가게에 정확히 N킬로그램의 설탕을 배달해야 하며, 설탕은 3킬로그램과 5킬로그램 봉지에 담겨 있습니다. 상근이는 최대한 적은 봉지를 들고 가고자 합니다.
상근이가 설탕을 정확하게 N킬로그램 배달하기 위해 필요한 봉지의 최소 개수를 구하는 프로그램을 작성하세요. 만약 정확하게 N킬로그램을 만들 수 없다면 -1을 출력해야 합니다.
첫째 줄에 N이 주어집니다. (3 ≤ N ≤ 5000)
상근이가 배달하는 봉지의 최소 개수를 출력합니다. 만약 정확하게 N킬로그램을 만들 수 없다면 -1을 출력합니다.


n = int(input())
large = 5
small = 3
count = 0
while True:
if (n % large == 0):
count += n // large
n = n % large
break
else:
n -= small
count += 1
if (n <= 0):
break
if (n == 0):
print(count)
else:
print(-1)
최대한 5를 많이 줄이고, 그 후 3을 하나씩 빼가면서 혹시라도 3으로 나눌 수 있는 상황을 대비하여 while문을 돌려가며 확인한다. 이를 통해 문제를 해결할 수 있다.