728x90
반응형
https://www.acmicpc.net/problem/11508
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, c;
cin >> n;
vector<int> v;
for(int i = 0; i < n; i++){
cin >> c;
v.push_back(c);
}
sort(v.begin(), v.end(), greater<>());
int sum = 0;
for(int i = 0; i < n; i++){
if((i + 1) % 3 == 0) continue;
sum += v[i];
}
cout << sum << endl;
return 0;
}
N개의 가격을 벡터에 담고 내림차순으로 정렬하여 3의 배수번째 수를 제외하고 더한다.
예를 들어보면 가격이 [2, 3, 4, 5, 6, 7, 8]일 때
[2] [3 4 5] [6 7 8]
위처럼 큰 수부터 3개씩 묶으면 최대한 비싼 것을 무료로 지불하여 최소비용으로 구입할 수 있다.
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 2042번 구간 합 구하기 (C++) (0) | 2022.02.19 |
---|---|
[BOJ] 12018번 Yonsei TOTO (C++) (0) | 2022.02.19 |
[BOJ] 19637번 IF문 좀 대신 써줘 (C++) (0) | 2022.02.16 |
[BOJ] 1543번 문서 검색 (C++) (0) | 2022.02.16 |
[BOJ] 1485번 정사각형 (C++) (0) | 2022.02.15 |