Deff_Dev

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

코딩테스트/백준

[백준] 11508번 2+1 세일 (C++)

Deff_a 2025. 2. 12. 21:59

문제

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

 

이 문제는 제목 그대로 물건을 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