SOLUTION INFO
C++ · main.cpp
class Solution {
public:
long long findScore(vector<int>& nums) {
int N = (int)nums.size();
vector<int> used(N);
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;
for(int i = 0; i < N; ++i) pq.emplace(nums[i], i);
long long ans = 0;
while(!pq.empty()) {
auto [a, b] = pq.top(); pq.pop();
if(used[b]) continue;
for(int k = -1; k <= 1; ++k) {
int idx = b + k;
if(0 <= idx && idx < N) used[idx] = 1;
}
ans += a;
}
return ans;
}
};
SOLUTION DESCRIPTION
풀이 설명
등록된 풀이 설명이 없습니다.