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

🤔 알고리즘에 관한 생각
- 5와 3으로 나누어 떨어지는 경우 최종적으로 N은 0이 되므로 정상적인 경우 N은 0보다 같거나 크게 된다. 따라서
N>=0
이 성립하지 않으면 정확하게 N킬로그램을 만들 수 없으므로-1
을 출력한다. 그리디 알고리즘
으로 가장 큰 값 5로 나누어 떨어지는지 확인하고 나누어 떨어지지 않을 경우 5로 나누어 질때까지 3을 빼면서 count를 증가한다.
N = int(input())
count = 0;
while N >= 0:
if N % 5 == 0: # 5로 나눈 나머지가 0 이라면
count += N // 5 # 5로 나눈 나머지
print(count)
break;
N -= 3 # 5의 배수가 될 때까지 3을 빼며 봉지 추가
count += 1
else:
print(-1) #while문이 거짓이라면 -1 출력