본문 바로가기

c++/Baekjoon Online

백준 : 기타줄 C++

www.acmicpc.net/problem/1049

 

1049번: 기타줄

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

www.acmicpc.net

 

풀이 및 후기

1. 어려운 문제는 아닌데 이거 신경쓰는걸 까먹으면 안된다

 -> 남은 낱개들을 전부 낱개로 사는거보다 그냥 세트가 더 싸면 세트로 사야됨!

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
	int n, m;
	int set, one;
	int answer = 0;
	int min_set = 1000;
	int min_one = 1000;
	//n: 끊어진 기타 줄
	//m: 브랜드 갯수
	cin >> n >> m;

	for (int i = 0; i < m; i++)
	{
		cin >> set >> one;
		min_set = min(set, min_set);
		min_one = min(one, min_one);
	}
	//일단 세트가 낱개보다 싼지 확인!
	//세트가 단일보다 싸면 일단 최대한 다 세트로 사고 남은거만 낱개로
	if (min_set <= min_one * 6)
	{
		answer += min_set * (n / 6);
		//남은 갯수들 다 낱개로 사는거보다 세트가 더 싸다면
		// 걍 셋트
		if ((min_one * (n % 6)) > min_set)
			answer += min_set;
		else
			answer += min_one * (n % 6);
	}
	else//낱개가 더 싸면 걍 전부 낱개
	{
		answer = min_one * n;
	}

	cout << answer << endl;

	return 0;
}

 

'c++ > Baekjoon Online' 카테고리의 다른 글

백준 2579 : 계단 오르기 C++  (0) 2020.11.20
백준 : 다리 만들기 2 c++  (0) 2020.11.19
백준 : 제곱수의 합 C++ (DP 연습!!)  (0) 2020.11.18
백준 : 퇴사 c++  (0) 2020.11.18
백준 1938 : 통나무 옮기기 c++  (0) 2020.10.16