백준 알고리즘
11508
vitamin3000
2024. 9. 20. 20:10
https://www.acmicpc.net/problem/11508
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<string>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin >> n;
vector<int>v;
for (int i = 0; i < n; i++)
{
int num = 0;
cin >> num;
v.push_back(num);
}
sort(v.begin(), v.end(), greater<>());
int sum = 0;
for (int i = 0; i < v.size(); i++)
{
if (i % 3 != 2)
{
sum += v[i];
}
}
cout << sum;
}
최소비용을 구하려면 내림차순 정렬을 한 후에 구하면 된다.
조건 - KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 개의 제품 가격만 지불하면 됩니다. 한 번에 3개의 유제품을 사지 않는다면 할인 없이 정가를 지불해야 합니다.
값 3개씩 묶는다.
(1) 즉 i%3 !=2라면 .. 묶음 중 첫번째 두번째 값이라면 sum에 더해준다
(2) sum출력