#include <iostream>
using namespace std;

#define MAX_PRICE 1000

int main()
{
	ios::sync_with_stdio(0), cin.tie(0);
	int N, M; cin >> N >> M;
	int P = MAX_PRICE, I = MAX_PRICE;

	int p, i;
	while (M--)
	{
		cin >> p >> i;
		if (p < P) P = p;
		if (i < I) I = i;
	}

	//낱개가 가성비가 제일 좋으면
	if (I * 6 <= P) cout << I * N;
	//패키지가 더 가성비가 좋으면
	else
	{
		//패키지를 사고 남은 기타줄
		int remainI = I * (N % 6);
		cout << P * (N / 6) + ((P < remainI) ? P : remainI);
	}
	return 0;
}

||사고 과정

브랜드 개수만큼 각 가격이 있지만 사실 사용되는건

패키지에서 가장싼것 한개, 낱개에서 가장싼것 한개 이렇게 사용이 되지 않을까 생각을 해서

정렬하지 않고 문제를 풀 수 있을것 같아 테스트케이스에 대입 해보았는데 다 잘 되길래

정렬 과정을 넘기고 최소 값만 받아 풀었다.


||나아 진것

  • 테스트 케이스 다 확인 해 본것

다 확인해서 내가 예상했던 예외가 맞는지 확인하여 더 수월하게 풀었다.

  • 크기 고려해본것

최대가격에 최대개수를 곱하여 자료형의 크기도 계산했다. 굿굿

+ Recent posts