본문 바로가기

코딩테스트/백준

[백준] 2839번 : 설탕 배달 (Python)

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

 

 

3킬로그램 봉지와 5킬로그램 봉지를 사용해 설탕 N킬로그램을 배달해야 할때,

사용할 수 있는 최소의 봉지 개수를 구하는 문제.

이때, 봉지 안에 정확히 나눠 떨어지지 않으면 -1를 출력해야 한다.

 

import sys

input = sys.stdin.readline

N = int(input())
answer = 0

while N >= 0:
    
    if (N % 5 == 0):
        answer += (N // 5) # 5개를 담을 수 있는 봉지 +1
        print(answer)
        break

    N -= 3 # 3을 빼준다.
    answer += 1 # 3개를 담은 봉지를 +1

else:
    print(-1) # 정확하게 담을 수 없으면 -1 출력
 

5로 나누어 떨어지지 않는다는건 3킬로그램 봉지에 담을 수 있는 내용물이 있거나, 아니면 -1인 경우다.

그래서 N이 0이 될때까지 3을 빼서, while문이 다 실행되면 떨어지지 않는 양이고 중간에 나누어떨어진다면 그 봉지 개수를 더해서 출력하면 끝!