728x90
http://www.acmicpc.net/problem/1049
# 조건
- Day Of Mourning의 기타리스트 강토가 사용하는 기타에서 N개의 줄이 끊어졌다.
- 따라서 새로운 줄을 사거나 교체해야 한다. 강토는 되도록이면 돈을 적게 쓰려고 한다.
- 6줄 패키지를 살 수도 있고, 1개 또는 그 이상의 줄을 낱개로 살 수도 있다.
- 끊어진 기타줄의 개수 N과 기타줄 브랜드 M개가 주어지고, 각각의 브랜드에서 파는 기타줄 6개가 들어있는 패키지의 가격, 낱개로 살 때의 가격이 주어질 때, 적어도 N개를 사기 위해 필요한 돈의 수를 최소로 하는 프로그램을 작성하시오.
# 접근 방법
- 입력을 받으며 패키지 가격과 낱개 가격을 따로 리스트에 담아준다.
- 각 리스트의 최소값을 변수에 담아 준 후, 패키지 1개와 낱개 6개의 가격을 비교해준다.
- 패키지가 저렴한 경우 6의 배수로 패키지 구매 후 남는 수량을 낱개로 구매,
- 반대의 경우 모두 낱개로 구매
n,m=input().split(' ')
n=int(n)
m=int(m)
c=list()
d=list()
for i in range(m):
a,b=input().split(' ')
c.append(int(a))
d.append(int(b))
e=min(c)
f=min(d)
if e < f*6:
if e < (n%6)*f:
print((n//6) * e + e)
else:
print((n//6) * e + (n%6) * f)
elif e >= f*6:
print(n*f)
728x90
'ALGORITHM > Greedy' 카테고리의 다른 글
[백준 10775번] 파이썬 - 공항 (0) | 2023.04.18 |
---|---|
[백준 2012번] 파이썬 - 등수 매기기 (0) | 2023.03.07 |
[백준 1700번] 파이썬 - 멀티탭 스케줄링 (1) | 2022.12.27 |
[백 준 1946번] 파이썬 - 신입 사원 (0) | 2022.08.17 |
[백준 1931번] 파이썬 - 회의실 배정 (0) | 2022.08.17 |