BOJ 2839 설탕 배달

LONGNEW·2021년 2월 19일
0

BOJ

목록 보기
171/333

https://www.acmicpc.net/problem/2839
시간 2초, 메모리 128MB
input :

  • N (3 ≤ N ≤ 5000)

output :

  • 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력

조건 :

  • 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달

5로 나눈 몫에서 시작해서 0까지를 체크 해줘야 한다.
남은 숫자를 3으로 나눈 나머지가 0일 때만 ans의 답을 업데이트 하도록한다.

import sys

n = int(sys.stdin.readline())
ans = 99999
five = n // 5

while five > 0:
    if (n - five * 5) % 3 == 0:
        ans = min(ans, five + (n - five * 5) // 3)
    five -= 1

if n % 3 == 0:
    ans = min(ans, n // 3)

print(ans if ans != 99999 else -1)

0개의 댓글