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 |