티스토리 뷰

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

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

 

1. 문제

 

 

 

2. 정답 코드

n = int(input())

answer = 0
while n >= 3 :
  if n % 5 == 0 :
    answer += n // 5
    n = 0
    break

  n -= 3
  answer += 1

if n != 0 :
  answer = -1

print(answer)
  1. 그리디 알고리즘이므로, 일단 5킬로그램 봉지로 n 을 모두 배달할 수 있는지 확인한다.
    • 만약 n이 5의 배수라면, 곧 바로 answer에 n을 5로 나눈 값을 더하고 반복문을 빠져 나온다.
  2. 만약 n이 5의 배수가 아니라면, n에서 3을 빼고, 봉지 수(answer)에 1을 더한다.
    • 만약 n에서 3을 뺀 값이 3보다 작다면, 5킬로그램 봉지와 3킬로그램 봉지로 정확하게 n킬로그램을 만들 수 없는 것이다. 따라서 반복문을 빠져 나온다.
  3. while문을 빠져 나온 후 n의 값이 0이 아니라면, 5킬로그램과 3킬로그램으로 n을 만들 수 없는 것이다.
728x90