문제 링크

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

1.문제분석

설탕 배달 -> 최대한 적은 봉지 개수로 배달해야함

설탕 봉지 : 5kg, 3kg

ex) 18kg 배달해야함 -> 5kg 3개 / 3kg 1개

5kg와 3kg으로 정확하게 나누어지지 않을 경우 -1 출력

2.진행방안

N = 총 설탕 kg

N - 3 -> N을 5의 배수로 만들어준다. ( 3kg 설탕봉지 +1 )

left_N / 5 -> N을 5로 나누어 5kg 봉지 개수를 구한다.

나누어지지 않는 경우 -1 출력

3.코드 진행

N = int(input())

sugar_bag = 0

# 5kg으로만 가져갈 수 있는 경우
if N % 5 == 0 :
    sugar_bag += N // 5
    print(sugar_bag)

# 그렇지 않은 경우
else :
    # 설탕 kg가 0보다 클때만 반복문 진행
    while N > 0 :
        # 3kg을 빼준 뒤 sugar bag에 추가해준다.
        N -= 3
        sugar_bag += 1

        # 5로 나누어질 경우
        if N % 5 == 0 :
            sugar_bag += N // 5
            print(sugar_bag)
            break

        # 1kg 2kg만 남은경우 -1 출력
        elif N == 1 or N == 2 : 
            sugar_bag = -1
            print(sugar_bag)
            break

        # 남은 설탕이 없을 경우 출력
        elif N == 0 :
            print(sugar_bag)
            break
        
    # 남은 설탕이 음수일 경우 -1 출력
    else :
        print(-1)