Deff_Dev
[백준] 11508번 2+1 세일 (C++) 본문
문제

이 문제는 제목 그대로 물건을 3개 샀을 때, 해당 묶음에서 가장 싼 제품을 무료로 줄 때, 최소 비용을 출력하는 문제이다.
풀이
최소 비용을 만들기 위해서는 가장 비싼 제품을 무료로 받으면 된다.
가장 비싼 제품을 무료로 받기 위해서는 내림차순 정렬을 이용하여 3개씩 구매하면 무료로 받을 수 있는 가장 비싼 제품들을 고를 수 있다.
#include <bits/stdc++.h>
using namespace std;
bool cmp (int a, int b)
{
return a > b;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++)
{
cin >> v[i];
}
sort(v.begin(), v.end(), cmp);
int count = 0, sum = 0;
for(int i = 0; i < n; i++)
{
if(count < 2)
{
sum += v[i];
count++;
}
else
{
count = 0;
}
}
cout << sum;
return 0;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 1629번 곱셈 (C++) (0) | 2025.02.03 |
---|---|
[백준] 2206번 벽 부수고 이동하기 (C++) (0) | 2025.01.23 |
[백준] 5427번 불 (C++) (0) | 2025.01.17 |
[백준] 7569번 토마토 (C++) (0) | 2025.01.16 |
[백준] 10026번 적록색약 (C++) (0) | 2025.01.16 |