알고리즘

백준 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);
    }
}

'알고리즘' 카테고리의 다른 글

백준 14916번 거스름돈 (JAVA)  (0) 2024.01.16
백준 2217번 로프 (JAVA)  (0) 2024.01.15
백준 2164번 카드2 (JAVA)  (1) 2024.01.13
백준 6497번 전력난 (JAVA)  (0) 2024.01.12
백준 16398번 행성 연결 (JAVA)  (1) 2024.01.11