본문 바로가기
Python/그리디

[Algorithm] 백준 2839 설탕 배달 | 파이썬

by 유일리 2024. 6. 20.

※ 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)

댓글