코딩테스트 대비/백준 알고리즘
BOJ - 11399 ATM
JellyApple
2024. 7. 2. 21:47
문제 링크 : https://www.acmicpc.net/problem/11399
문제 티어 : 실버 4
문제 유형 : 그리디 알고리즘
문제 풀이
1) N을 입력 받고 그 아래 N 만큼 숫자를 입력 받는다.
2) Pi가 주어지고 Pi가 작은 순대로 index를 정렬 해준다. 즉, 오름차순 정렬 해줌
3) 그 후 이전에 것들과 함께 더 해줌
문제 코드
const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split("\n");
let n = Number(input[0]);
// Pi 입력 받음
let arr = input[1].split(" ").map(Number);
// arr 오름차순 정렬
arr.sort((a,b)=>a-b);
// 대기 시간 더해줌
let sum = 0; // 현재까지 대기 시간
let answer = 0; // 총 대기 시간
for(let i=0;i<n;i++){
sum += arr[i]; // sum에 지금 기다린 대기 시간 더해줌
answer += sum; // answer에 총 대기 시간을 더해줌
}
// 총 대기 시간 answer 출력
console.log(answer);
시간복잡도 : O(N)