<Python 백준>설탕 배달

박서연·2023년 2월 16일

CodingTest

목록 보기
17/17

백준#2839

1. 내 코드

n = int(input())

smallest = n
five = n//5
for i in range(five, -1, -1):
    if ((n - i*5)%3 == 0):
        three = (n - i*5)//3
        small = i+three
        if (small < smallest):
            smallest = small
    
if (smallest != n):
    print(smallest)
else:
    print(-1)

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)

3. 반성점

💡 이 문제의 경우 for문보다 while문으로 해결하는 것이 시간이 단축된다

4. 배운점

💡 내 코드에서는 5킬로그램 가방의 개수를 먼저 구하는 반면, 나누어떨어지지 않을 경우 3킬로그램을 빼 5킬로그램으로 나누어떨어지도록 하였다
💡 while-else문을 처음 알았다. while-else문은 while문을 계속 실행하다 개수를 찾은 경우 break로 나가 종료되고, 마지막까지 찾지 못해 조건문이 False가 되면 else문을 실행한다

0개의 댓글