<문제 링크>
https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
<정답 코드>
1
2
3
4
5
6
7
8
9
10
11
12
|
n = 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 |
한눈에 그리디 알고리즘임을 알 수 있었지만, 코드로 표현하는 과정에서 어려움을 느꼈다.
문제에서 발생할 수 있는 경우의 수를 차근차근 정리하며 문제를 푸는 것이 좋겠다.
'프로그래밍 > Python' 카테고리의 다른 글
백준_python 1929번 소수 구하기(시간 초과, 에라토스테네스의 체) (1) | 2024.04.05 |
---|---|
백준_python 4949번 균형잡힌 세상(출력 초과) (0) | 2024.04.04 |
백준_python 10989번 수 정렬하기 3 (메모리 초과, 시간 초과) (0) | 2024.04.02 |
프로그래머스_python lv0. n의 배수 고르기 (0) | 2023.04.06 |
프로그래머스_python lv0. 숫자 찾기 (0) | 2023.04.06 |