[Python_설탕배달]
<STUDY>
📢 문제 📢
봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.
상근이는 최대한 적은 봉지를 들고 가려고 한다.
상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오.
❗아이디어
- 최대의 5kg 봉지의 갯수를 먼저 구한 뒤 3kg 봉지의 갯수를 구한다.
import sys
N = int(sys.stdin.readline())
li = []
for i in range(N // 5 + 1):
if (N - 5 * i) % 3 == 0:
li.append(i)
if len(li) == 0:
print(-1)
else:
f = max(li)
t = (N - 5 * f) // 3
print(f + t)
- N을 5로 나눈 몫이 5kg 봉지의 최대 갯수이므로 0부터 차례로 5를 곱한뒤 N에서 뺀다.
- 이때 3으로 나눈 나머지가 0이 나온 경우만 정확히 Nkg을 맞출 수 있으므로 그 경우만 i(5kg 봉지의 갯수)를 리스트에 추가한다.
- 5kg 봉지가 가장 많아야 하므로 리스트에서 가장 큰 값을 선택한 후 5를 곱하고 N에서 빼면 3kg 봉지의 갯수가 나온다.
🔆백준 코딩 2893번🔆
'STUDY > Algorithm' 카테고리의 다른 글
[백준코딩_파이썬] 1316번_그룹 단어 체커 (0) | 2022.04.03 |
---|---|
[백준코딩_파이썬] 2581번_소수의 합과 최솟값 (0) | 2022.03.30 |
[백준코딩_파이썬] 10951번_A+B / 종결규칙이 없는경우 (0) | 2022.03.26 |
[백준코딩_파이썬] 8958번_OX 퀴즈 (0) | 2022.03.24 |
[백준코딩_파이썬] 1065번_한수 개수 구하기 (0) | 2022.03.09 |