문제
https://www.acmicpc.net/problem/1049
풀이
N개 이상의 기타줄을 구매하는데 필요한 최소 가격을 구하는 문제이다.
기타줄을 구매하는데 있어서 가능한 경우들은 다음과 같다.
- 패키지와 낱개를 섞어서 구매하는 경우
- 패키지만 구매하는 경우
- 낱개만 구매하는 경우
N, M = map(int, input().split())
cost = []
for _ in range(M) :
six, one = map(int, input().split())
cost.append([six, one])
answer = [] # 정답 후보 저장
pack = N // 6
each = N % 6
cost_pack = sorted(cost, key = lambda x : x[0]) # 패키지 가격 기준 오름차순으로 정렬
cost_each = sorted(cost, key = lambda x : x[1]) # 낱개 가격 기준 오름차순으로 정렬
answer.append(cost_pack[0][0] * pack + cost_each[0][1] * each) # 경우 1
answer.append(cost_pack[0][0] * (pack + 1)) # 경우 2
answer.append(cost_each[0][1] * N) # 경우 3
print(min(answer))
728x90