본문 바로가기

백준/실버

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

문제링크 : https://www.acmicpc.net/problem/11508

 

11508번: 2+1 세일

KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두

www.acmicpc.net

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = INT_MAX;

int N, arr[100001];
int result;

int main()
{
    ios_base::sync_with_stdio(0); 
	cin.tie(0);

    cin >> N;

    for(int i=1; i<=N; i++) cin >> arr[i];

    sort(arr+1, arr+N+1, greater<>()); //내림차순 정렬

    for(int i=1; i<=N; i++)
    {
        if(!(i%3))continue; //2+1 세일 
        result+=arr[i];
    }

    cout << result;

    return 0;
}

 

주어진 입력 값에 대해 내림차순으로 정렬을 해준다.

이후 3의 배수번째 값에 대해 체크를 하고, 해당 값만 스킵하고 나머진 더해준다.

이렇게 더해준 값을 출력해주면 된다.