-
[백준/BOJ] 11508번 2+1 세일 (C++)알고리즘 문제풀이/백준 2020. 12. 27. 02:11
쉬운 그리디 문제입니다.
가격을 기준으로 내림차순 정렬을 한 후, 3개씩 묶을 때 마지막 가격만 빼면 되므로, 현재 인덱스 번호 % 3 의 값이 2가 아닌 경우는 모두 더해주면 됩니다.
#include <iostream> #include <vector> #include <algorithm> using namespace std; int cmp(long long a, long long b) { // 내림차순 정렬 return a > b; } int main(void) { ios_base::sync_with_stdio(false); cin.tie(0); int n; cin>>n; vector<long long> v(n); for(int i = 0; i < n; i++) { cin>>v[i]; } sort(v.begin(), v.end(), cmp); long long sum = 0; for(int i = 0; i < n; i++) { if(i % 3 != 2) sum += v[i]; } cout<<sum; }
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준/BOJ] 1182번 부분수열의 합 (C++) (0) 2020.12.28 [백준/BOJ] 6603번 로또 (C++) (0) 2020.12.28 [백준/BOJ] 14247번 나무 자르기 (C++) (0) 2020.12.26 [백준/BOJ] 13305번 주유소 (C++) (0) 2020.12.25 [백준/BOJ] 2138번 전구와 스위치 (C++) (0) 2020.12.25