[백준] 설탕 배달 (2839번) - 그리디

YEAh·2021년 5월 8일
0
post-thumbnail

🔗 문제 링크

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


💻 코드

N = int(input())

# 5킬로그램 봉지를 최대로 가질 수 있는 경우
cnt_5_temp = N // 5

data = N
result = 0
flag = False  # N킬로그램을 만들 수 있는지 확인하는 변수

# 5킬로그램 봉지를 처음에는 가질 수 있는 최대로 갖고,
# N킬로그램을 만들 수 없다면 그 수를 하나씩 줄여가며 결과를 찾는다.
for cnt_5 in range(cnt_5_temp, -1, -1): 
    data -= 5 * cnt_5
    
    # 5킬로그램 봉지를 가지고 남은 무게를 3킬로그램으로 채울 수 있다면 결과 return
    if data % 3 == 0 :
        cnt_3 = data // 3
        result = cnt_5 + cnt_3
        flag = True
        break
    data = N

if flag == False:
    print(-1)
else:   
    print(result)
profile
End up being.

0개의 댓글