Python/그리디
[Algorithm] 백준 2839 설탕 배달 | 파이썬
유일리
2024. 6. 20. 15:42
※ 2839 설탕 배달
https://www.acmicpc.net/problem/2839
문제 해결 TIP
나올 수 있는 경우의 수는 총 4가지이다. 5로 나누어 떨어지는 경우, 3으로 나누어 떨어지는 경우, 3과 5의 조합으로 나누어 떨어지는 경우, 나누어 떨어지지 않는 경우. 처음에는 모든 경우의 수를 if else 문으로 하려 했지만, 조금 더 효율적인 방법을 생각해보았다. 우선 N을 5로 나누어보고 나누어 떨어지지 않는다면 3만큼 한번씩 뺴본 후 다시 5로 나누어보는 방법이다. 이렇게 로직을 짜면 모든 경우를 만족할 수 있게 된다.
전체 코드
N = int(input())
result = 0
while N>=0:
if N%5==0:
result += N//5
print(result)
break
N = N - 3
result += 1
else:
print(-1)