[Python] 백준 1049번: 기타줄

Jonie Kwon·2022년 4월 29일
0

https://www.acmicpc.net/problem/1049

풀이

가장 저렴한 세트 가격과 낱개 가격을 찾는다.
낱개 가격보다 세트가격이 더 싸면 모두 세트를 사버린다
세트의 개당 가격이 낱개 가격보다 싸면 세트 + 필요한 낱개를 산다.
(이때 세트 하나를 추가하는게 남은 낱개를 사는것 보다 저렴하다면 세트로 산다.)
세트보다 낱개가 훨씬 저렴하다면 모두 낱개로 산다.

코드

import sys
import math
input = sys.stdin.readline
n,m = map(int,input().split())
info = [list(map(int,input().split())) for _ in range(m)]
info = list(map(list, zip(*info)))

min_set_price = min(info[0])
min_price = min(info[1])
answer = 0
# 세트가격이 낱개 가격보다 저렴할 경우
if min_set_price <= min_price:
    answer += math.ceil(n/6) * min_set_price
elif min_set_price/6 <= min_price: # 세트가 더 저렴한 경우
    answer += min_set_price * (n // 6)
    n -=  6 * (n//6)
    answer = min(answer + math.ceil(n/6) * min_set_price, answer + n * min_price)
else: # 낱개가 저렴한 경우
    answer = n*min_price
print(answer)
profile
메모하는 습관

0개의 댓글