링크 : https://www.acmicpc.net/problem/1049
찝찝하다. 왜 이렇게는 되는데 저렇게는 안되는거지의 전형적인 답답함. 한번 살펴보자.
#include <iostream>
using namespace std;
int main() {
int N, M;
cin >> N >> M;
int package, onlyone, total = 0;
int min_pack = 1000, min_only = 1000;
for (int i = 0; i < M; i++) {
cin >> package >> onlyone;
if (min_pack > package)
min_pack = package;
if (min_only > onlyone)
min_only = onlyone;
}
int q = (N / 6), r = (N % 6);
total = min( min((q * min_pack) + (r * min_only), N*min_only),
(q + 1) * min_pack);
cout << total << endl;
return 0;
}
비교해야 할 대상이 총 3개다.
min((q * min_pack) + (r * min_only), N*min_only)
min(total, (q + 1) * min_pack)
슬픈 이야기다. 1번째 요소를 확인하지 못해 여러번 실패했다. 그리고 이렇게 정리하고 코드를 짜야겠다. 코드 다 쓰고 글쓰니까 놓친 부분이 너무 많이 보인다.