[백준] 1049번: 기타줄 (C언어)

728x90
728x90

https://www.acmicpc.net/problem/1049

 

1049번: 기타줄

첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주

www.acmicpc.net

난이도: solved.ac 실버 4

 

 

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main() {
	int N, M, i;
	int min[2] = {1000, 1000};	// min[0]: 패키지 최소 가격, min[1]: 낱개 최소 가격
	int six, one, sum = 0;
	scanf("%d %d", &N, &M);

	for (i = 0; i < M; i++) {
		scanf("%d %d", &six, &one);
		if (six < min[0])
			min[0] = six;
		if (one < min[1])
			min[1] = one;
	}

	if (min[1] * 6 <= min[0])	// 낱개로 다 구매하는 게 제일 싼 경우
		sum = min[1] * N;
	else {
		sum = (N / 6) * min[0];	// 일단 6으로 나눈 몫만큼 패키지로 삼
		if (N % 6 != 0) {	// 나머지가 있는 경우
			if (min[0] < min[1] * (N % 6))	// 나머지를 패키지로 사는 게 더 싼 경우
				sum += min[0];
			else
				sum += min[1] * (N % 6);	// 나머지를 낱개로 나머지만큼만 사는 게 더 싼 경우
		}
	}
	printf("%d", sum);
	return 0;
}
반응형