Koala - 15기/기초 알고리즘 스터디
[백준/Python] 2839번: 설탕 배달
deveronica
2024. 7. 8. 01:18
https://www.acmicpc.net/problem/2839
문제 풀이
- 정확하게 나누어 떨어질 때, 3킬로그램의 갯수가 적을수록 더 적은 개수의 봉지를 가져갈 수 있다.
- 최대의 3킬로그램으로 가져갈 때를 가정하여, max_pcs를 설정한다. (0개 일때도 고려하므로, +1)
- 0부터 max_pcs까지, 3킬로그램 봉지의 갯수를 pcs로 설정하여 탐색한다.
- N킬로그램에서 pcs만큼의 3킬로그램 봉지를 가져간 나머지에 대해, 5킬로그램으로 나누어 떨어지면, 그 갯수와 pcs를 합한 값을 출력한다.
- has_answer의 플래그를 통해, 정확하게 N킬로그램을 만들 수 없는 상황에 대비한다.
문제 코드
N = int(input())
has_answer = False
max_pcs = (N // 3) + 1
for pcs in range(max_pcs):
remainder = N - (3 * pcs)
if remainder % 5 == 0:
print(pcs + (remainder // 5))
has_answer = True
break
if has_answer is not True:
print(-1)