2839: 설탕 배달 - Python

beaver.zip·2024년 12월 13일
0

[알고리즘] 백준

목록 보기
36/45

문제

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

풀이 1

amount = int(input()) 
cnt_list = []

for i in range(amount // 5 + 1):
    amt = amount
    amt -= 5 * i
    if amt == 0:
        cnt_list.append(i)
    elif amt % 3 == 0:
        cnt_list.append(i + amt // 3)

if cnt_list:
    print(min(cnt_list))
else:
    print(-1)
  • 18 = 3x1 + 5x3 = 3x6 + 5x0 등의 예시를 생각해보며 풀었다.
  • 어거지로 풀었다.

풀이 2 (영지공지님 풀이)

sugar = int(input())
bag = 0
while sugar >= 0:
    if sugar % 5 == 0:
        bag += sugar // 5
        print(bag)
        break
    sugar -= 3
    bag += 1
else:
    print(-1)
  • while-else문의 존재를 처음 알았다.
  • 아이디어가 천재적이다. 변수명도 직관적이라 이해하기 쉽다.

오늘의 교훈

  • while-else문: while의 조건이 거짓이면 else문으로 진입
  • 변수명을 이해하기 쉽게 짓자.

참고 자료

백준 알고리즘 2839 [파이썬] : 설탕 배달

profile
NLP 일짱이 되겠다.

0개의 댓글