알고리즘
python 백준1049 기타줄(BOJ1049)
피프밍
2023. 1. 9. 12:20
문제링크 : https://www.acmicpc.net/problem/1049
직접 적으면서 고민해보니 크게 어렵지는 않았다
이 문제는 예제 케이스도 많고 해서 다른사람들도 아이디어만 떠오른다면 오답없이 잘 통과할것같다
import sys
input = sys.stdin.readline
#끊어진 기타 줄 수, 가게 수
n, m = map(int, input().split())
set = []
single = []
#입력
for _ in range(m):
a,b = map(int, input().split())
set.append(a)
single.append(b)
#몫, 나머지
quotient = n // 6
remainder = n % 6
set_compare = []
single_compare =[]
#결과값
result = 0
#몫이 0보다 크다면 한 세트 6개 기준으로 가격을 계산해서
#가장 저렴한것으로 몫만큼 구매
if quotient > 0:
for i in range(m):
set_compare.append(set[i])
set_compare.append(single[i]* 6)
result += min(set_compare) * quotient
#나머지만큼 계산해서 한 세트로 살때와 낱개로 살때 가격을 계산
#그중 가장 저렴한 것으로 구매
for i in range(m):
single_compare.append(set[i])
single_compare.append(single[i]* remainder)
result += min(single_compare)
#출력
print(result)