-
[백준/BOJ] 12845번 모두의 마블 (C++)알고리즘 문제풀이/백준 2021. 9. 13. 17:00
https://www.acmicpc.net/problem/12845
문제를 잘보면 결국 획득할 수 있는 최대 골드는 레벨이 가장 큰 카드를 시작으로 인접한 카드와 합성을 하는 것이다. 결국은 레벨이 가장 큰 카드와 모든 카드가 합성을 하게된다. 따라서 카드를 내림차순으로 정렬하고 가장 큰 레벨의 카드인 0번 인덱스의 값과 1번부터 n-1번까지의 인덱스 값의 누적합을 구하면 된다.
#include <iostream> #include <algorithm> using namespace std; int cmp(int a, int b) { return a > b; } int main(void) { ios_base::sync_with_stdio(false); 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 sum = 0, level = v[0]; for(int i = 1; i < n; i++) { sum += v[i] + level; } cout << sum; }
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준/BOJ] 1969번 DNA (C++) (0) 2021.09.13 [백준/BOJ] 1931번 회의실 배정 (C++) (0) 2021.09.13 [백준/BOJ] 4796번 캠핑 (C++) (0) 2021.09.13 [백준/BOJ] 13458번 시험 감독 (C++) (0) 2021.09.12 [백준/BOJ] 2217번 로프 (C++) (0) 2021.09.12