728x90
문제
https://www.acmicpc.net/problem/1758
풀이
대기 순번 만큼 줄어든 팁을 최대한 많이 받기 위해 손님의 순서를 바꿔야 하는 문제다.
팁 - 대기 순번이 0 이하인 경우에는 0원으로 계산하며, 대기 순번은 점점 커진다.
따라서 작은 팁이 늦은 대기 순번으로 계산할 때 더 많은 팁을 받을 수 있다.
입력받은 팁들을 내림차순으로 정렬해주자.
// Solve
Arrays.sort(A, Comparator.reverseOrder());
팁 - 대기 순번의 계산 결과가 0이하가 될 때 까지 받을 수 있는 팁들을 계산하면 된다.
N은 최대 10만이며 int의 범위를 초과한다 결과는 long으로 담아주자.
long sum = 0;
for (int i = 0; i < N; ++i) {
if (A[i] - i <= 0) {
break;
} else {
sum += A[i] - i;
}
}
풀이 시간
≤ 8m
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/01758.java
problem-solving/baekjoon-online-judge/easy/01758.java at main · rogi-rogi/problem-solving
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
728x90
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 14402] 야근 [Java] (0) | 2025.04.25 |
---|---|
[백준 11637] 인기 투표 [Java] (0) | 2025.04.24 |
[백준 03991] 한번 쏘면 멈출 수 없어 [Java] (0) | 2025.04.22 |
[백준 28238] 정보 선생님의 야망 [Java] (0) | 2025.04.22 |
[백준 28445] 알록달록 앵무새 [Java] (0) | 2025.04.21 |