coding_test

[99클럽 5기 코테 스터디 TIL 17일차] ATM (feat. 탐욕법(Greedy))

jeri 2025. 2. 11. 11:45
반응형

1) 문제

https://www.acmicpc.net/problem/11399

 

2) 문제풀이

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        // 입력 받기
        int N = sc.nextInt(); // 사람의 수
        int[] P = new int[N]; // 각 사람이 인출하는데 걸리는 시간
        
        for (int i = 0; i < N; i++) {
            P[i] = sc.nextInt();
        }

        // 1. 인출 시간을 오름차순 정렬
        Arrays.sort(P);

        int totalTime = 0; // 최종 결과 (모든 사람이 기다린 시간의 합)
        int waitingTime = 0; // 각 사람이 기다린 누적 시간

        // 2. 최소 대기 시간 계산
        for (int i = 0; i < N; i++) {
            waitingTime += P[i]; // 현재 사람이 기다려야 하는 총 시간
            totalTime += waitingTime; // 이를 총 누적 시간에 더함
        }

        // 결과 출력
        System.out.println(totalTime);
        
        sc.close();
    }
}

 

 

 

 

 

반응형