문제 https://www.acmicpc.net/problem/1049
import math
n, m = map(int, input().split())
price = []
for i in range(m):
price.append(list(map(int, input().split())))
#세트 가격의 최솟값
rope_set = []
for i in range(m):
rope_set.append(price[i][0])
rope_set_price = min(rope_set)
#낱개 가격의 최솟값
rope_one = []
for i in range(m):
rope_one.append(price[i][1])
rope_one_price = min(rope_one)
if n <= 6:
print(min(rope_set_price, rope_one_price*n))
else:
if (rope_one_price*6) < rope_set_price:
print(rope_one_price*n)
else:
if rope_set_price < (rope_one_price*(n%6)):
print(rope_set_price*(n//6+1))
else:
print(rope_set_price*(n//6) + rope_one_price*(n%6))
천천히 예시를 들어가면서 단계별로 알고리즘을 풀어나간다면 어렵지 않은 문제였다. 2874번 문제를 풀다가 머리가 너무 아파서 이 문제를 풀었는데 열심히 공부해서 그 문제도 풀 수 있도록 해야겠다.