코딩테스트 대비/백준 알고리즘

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)

'코딩테스트 대비 > 백준 알고리즘' 카테고리의 다른 글

BOJ - 2839 설탕 배달  (0) 2024.07.08
BOJ - 1541 잃어버린 괄호  (0) 2024.07.04
BOJ - 11047 동전 0  (0) 2024.07.02
[코딩테스트] 그리디 알고리즘  (0) 2024.07.02
BOJ - 1427 소트인사이드  (0) 2024.05.26