기타줄 브랜드는 서로 섞이어도 상관 없다. 포인트는 가장 패키지 값이 작은 브랜드, 한 개 값이 가장 작은 브랜드를 따로 파악한 후 경우의 수에 따라 값을 계산해야한다.
세가지 경우의 수에 맞춰 가격을 구한뒤 가장 적은 가격을 택하면 된다.
#백준 1049 기타줄
N, M = map(int, input().split())
#6개 묶음은 패키지 나머지는 낱개
#모두 패키지
#모두 낱개
#브랜드 섞이기 가능
minPakage = 99999
minOne = 99999
for i in range(M):
pakage, one = map(int, input().split())
minPakage = min(minPakage, pakage)
minOne = min(minOne, one)
pakageN = N//6 if not N%6 else N//6 + 1
print(min(pakageN*minPakage, min(N//6 * minPakage + N%6 * minOne, minOne*N)))
2025-07-20T07:14:14.965Z