반응형
문제 바로 가기
풀이
- 사용 언어 : Python
- 풀이한 날짜 : 2021-09-18
# 첫 번째 풀이
n = int(input())
max_5 = n // 5
max_3 = n // 3
min_num = -1
count = 0
for i in range (max_5+1):
for j in range (max_3+1):
if n == (i*5 + j*3):
if count > 0:
if min_num < (i+j): continue
min_num = i+j
count = 1
print(min_num)
# 두 번째 풀이
# (다음의 논리 반영 -> 봉지 개수를 최소화 하려면 5kg봉지를 최대한으로 싸야한다.
# 즉, 5kg볼지를 가장 많이 쓰는 방법부터 5kg볼지를 줄이고 3kg봉지 개수를 늘려가는 순서대로 찾으면
# 가장 먼저 나오는 경우가 최소로 봉지를 쓰는 경우일 것이다.)
def bag_count(n):
bag = 0
while not n % 5 == 0:
n = n-3
bag = bag + 1
if n < 0 : return -1
return bag + n//5
n = int(input())
print(bag_count(n))
(예전에 기록해둔 풀이를 그대로 옮겨온 것이기에, 부가 설명이 없다는 점 양해 부탁드립니다.)
반응형
'◼ PS Note > 백준' 카테고리의 다른 글
[백준] 4344번 : 평균은 넘겠지 (🥉브론즈 1) (Python) (2) | 2023.01.20 |
---|---|
[백준] 3052번 : 나머지 (🥉브론즈 2) (Python) (0) | 2023.01.20 |
[백준] 2577번 : 숫자의 개수 (🥉브론즈 2) (Python) (2) | 2023.01.20 |
[백준] 2562번 : 최댓값 (🥉브론즈 2) (Python) (0) | 2023.01.20 |
[백준] 2530번 : 인공지능 시계 (🥉브론즈 4) (Python) (0) | 2023.01.20 |