
안녕하세요 !
오늘은 백준 - 설탕 배달 문제를 가지고 왔습니다.
문제를 해결한 방법을 간략히 정리해보겠습니다.
- 입력 받는다.
- 반복문을 돌면서 50, 51 ... 0과 5의 배수를 입력 받은 수에서 빼고 카운트를 해줍니다.
- 만약 뺀 수가 음수이면 반복문을 종료합니다.
- 만약 뺀 수가 3을 나눈 나머지가 0이라면 카운트를 해주고 전체 카운트를 리스트에 저장합니다.
- 리스트에 요소가 하나 이상이라면 요소 중 가장 작은 요소를 출력합니다.
- 리스트에 요소가 없다면 -1을 출력합니다.
num = int(input())
카운트를 1씩 증가하는 것이 아닌 i만큼 해야합니다. 예를 들어 i가 2이면 5kg 봉지가 2개이기 때문입니다.
while 1: cnt = 0 n = num cnt += i n -= (5*i)
if n < 0: break
리스트는 배달하는 봉지의 개수를 저장합니다.
if n % 3 == 0: cnt += n // 3 answer.append(cnt)
if len(answer): print(min(answer))
else: print(-1)
num = int(input())
answer = []
i = 0
n = 0
while 1:
cnt = 0
n = num
cnt += i
n -= (5*i)
if n < 0:
break
if n % 3 == 0:
cnt += n // 3
answer.append(cnt)
i += 1
if len(answer):
print(min(answer))
else:
print(-1)