문제링크 : 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)
'알고리즘' 카테고리의 다른 글
python 백준1966 프린터 큐(BOJ1966) (1) | 2023.01.12 |
---|---|
python 백준1715 카드 정렬하기(BOJ1715) (0) | 2023.01.10 |
python 백준13305 주유소(BOJ13305) (0) | 2023.01.08 |
python 백준10610 30(BOJ10610) (0) | 2023.01.08 |
python 백준1463 1로 만들기(BOJ1463) (0) | 2023.01.08 |