알고리즘
백준 1758번 알바생 강호 (JAVA)
박카스마시며코딩
2024. 1. 14. 21:21
https://www.acmicpc.net/problem/1758
1758번: 알바생 강호
첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같
www.acmicpc.net
저는 정렬을 통해 문제를 풀었습니다.
내림차순으로 정렬하여 최대한 빼는 수를 적게 하여 풀었습니다.
package BOJ.greedy;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
public class BOJ_1758 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Integer[] tip = new Integer[n];
for(int i = 0 ; i < n ; i++){
tip[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(tip, Collections.reverseOrder());
long sum = 0;
for(int i = 0 ; i < n ; i++){
int money = Math.max(tip[i]-i,0);
sum += money;
}
System.out.println(sum);
}
}