Baekjoon/Silver
C++ / 백준 / 1758 / 알바생 강호
GitHubSeob
2023. 7. 4. 18:46
문제 |
https://www.acmicpc.net/problem/1758
1758번: 알바생 강호
첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같
www.acmicpc.net
문제풀이 |
팁이 음수가 될 수 는 없다, 음수가 될 경우 팁은 0원이다.
뒤로 갈수록 등수가 늘어나므로 팁은 점점 줄어들것이다.
팁이 0원이 되든 -100원이 되든 똑같은 0원이므로, 팁을 내림차순으로 하여 받으면 최대로 받을 수 있다.
코드 |
#include <iostream>
#include <vector>
#include <algorithm>
#define ll long long
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
ll N(0), idx(0), answer(0);
cin >> N;
vector<ll>tip(N, 0);
for (idx = 0; idx < N; ++idx) {
cin >> tip[idx];
}
sort(tip.begin(), tip.end(), greater<ll>());
for (idx = 0; idx < N; ++idx) {
answer += max(tip[idx] - idx, (long long)0);
}
cout << answer;
}