문제풀이) 백준 - 2839 / 설탕 배달

velg·2021년 4월 30일
0

문제 링크

문제 요약

1. 최대한 적은 봉지로 배달하라.
2. 상근이는 정확하게 n킬로그램을 배달해야만 한다.(불가능 할 경우 -1을 출력 한다)

요점

어떻게 하면 5kg의 봉투를 최대한 많이 사용 할 것인가?

코드

n = int(input())
count = 0

# 알맞은 갯수를 찾는 재귀함수
def func(parm):
  rn = n - (parm * 5)
  if parm == -1: return -1
  if rn % 3 == 0: return parm + rn // 3
  else: return func(parm - 1)


if n % 5 == 0: count += n // 5	# only 5kg
else: count = func(n // 5)

print(count)

코드 풀이

line 12. 5kg만으로 해결 할 수 있는 값(n)이 주어지면 우선적으로 해결 할 수 있도록 하였다.
line 5.  func() 함수를 통해 5kg을 최대한 많이 사용하는 경우부터 사용하지 않는 경우까지 5kg봉지의 갯수를 
1씩 감소시켜가며 체크하도록 하였다.

피드백

처음엔 5kg을 최대한 많이 사용하는 단순한 코드로 풀어보려 하였지만 3kg만으로 배달 할 수 있는 경우가 있어 실패하였다.
-> 항상 예외를 생각하고 코드에 적용시켜야한다.
profile
초보 개발자

0개의 댓글