반응형
[문제 출처]
https://www.acmicpc.net/problem/1049
[문제 풀이]
N개의 기타 줄을 사려고 할 때 최소한의 비용을 구하는 문제이다.
M개의 브랜드의 기타 줄 가격이 주어지며, 각각 6개 패키지 가격과 1개 낱개 가격이 주어진다.
2가지 경우로 나눠볼 수 있는데, 사야 하는 기타 줄의 수가 6개보다 많을 경우와 6개 이하인 경우이다.
6개 이하라면 낱개 n개를 사거나, 남더라도 6개 패키지를 사야 한다. 따라서 패키지 가격 중에 가장 싼 경우와 낱개로 n개 샀을 때의 가격이 가장 쌀 때를 찾아 비교한 후 선택하면 된다.
6개보다 많을 때는 6개 패키지와 6개를 낱개로 사는 경우를 비교해 선택한다.
그 후 구매한 수(6)만큼 n에서 빼주며 반복하고, n이 6 이하가 되면 다시 첫 번째 경우가 되어 while문이 끝난다.
#1049
n, m = map(int, input().split())
price6 = []
price1 = []
for i in range(m):
a,b = map(int, input().split())
price6.append(a)
price1.append(b)
sum = 0
while True:
if n <= 6:
sum += min(min(price6), min(price1)*n)
break
else:
sum += min(min(price6), min(price1)*6)
n -= 6
print(sum)
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 1205 등수 구하기 (0) | 2023.01.09 |
---|---|
[python/파이썬] 백준 1094 막대기 (0) | 2023.01.06 |
[python/파이썬] 백준 1026 보물 (0) | 2023.01.04 |
[python/파이썬] 백준 9625 BABBA (0) | 2023.01.03 |
[python/파이썬] 백준 5622 다이얼 (0) | 2023.01.02 |