"꾸준하고 완벽한 한 걸음"

PS/Baekjoon Online Judge

[백준 01758] 알바생 강호 [Java]

kimyoungrok 2025. 4. 23. 16:44
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