개발/algorithm

[백준 2839번] 설탕 배달 - python

zzi_on2 2022. 2. 12. 16:14

문제 링크

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

 

2839번: 설탕 배달

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

www.acmicpc.net

풀이 

- 그리디 문제

- 5킬로그램 봉지수가 더 많을 수록 봉지수가 줄어든다. 

- 5킬로그램 봉지수를 점점 늘려가면서 5킬로그램 봉지에 담고 남은 양이 3의 배수이면 answer에 봉지수를 갱신해준다. 

n = int(input())

answer = 0 

# 5개의 봉투 수를 계속 늘려가면서 가능한 값 구하기 
for i in range(n // 5+1):
  tmp = n - i * 5 
  if tmp % 3 == 0 :
    answer = i + tmp // 3 

if not answer :
  print(-1)
else:
  print(answer)

- 과거에 해당 문제를 푼 적이 있었는데 과거 풀이는 아래와 같다

- 5의 배수가 될 때까지 3을 반복해서 빼주고 빼줄 때마다 봉지수 + 1, 5의 배수가 되면 필요한 봉지수를 더하고 출력 

n = int(input())

count = 0
while(n >= 0):
  if(n % 5 == 0 ):
    count += n //5 
    print(count)
    break
  n -= 3 
  count += 1
else :
  print(-1)