프로그래밍/Python

백준_python 2839번 설탕 배달

O'bin 2024. 4. 3. 21:43

<문제 링크>

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

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

 

<정답 코드>

1
2
3
4
5
6
7
8
9
10
11
12
= int(input())
 
# 5kg 봉지 최대 가능 수 부터 시작
for i in range(n//5-1-1):
    # 만약 5kg 봉지 최대 가능 수의 나머지가 3으로 나누어떨어지면
    if (n - (i * 5)) % 3 == 0:
        # 5kg 봉지 수 + 3kg 봉지 수의 합 출력
        print(i + (n - (i * 5)) // 3)
        break
# 루프를 마치고 나왔을 때 (5kg, 3kg으로 나누어떨어지지 않는 경우)
else:
    print(-1)
cs

 

 

한눈에 그리디 알고리즘임을 알 수 있었지만, 코드로 표현하는 과정에서 어려움을 느꼈다. 

문제에서 발생할 수 있는 경우의 수를 차근차근 정리하며 문제를 푸는 것이 좋겠다.