본문 바로가기

코딩/알고리즘

백준) 25305 - 커트라인 JS

📌 문제 링크

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


📌 문제 탐색하기

  • N명의 학생이 응시했을 때 이들 중 점수가 가장 높은 K명이 상을 받는다. 이때 상을 받는 커드라인이 몇 점인지 구하여라.

시간복잡도

  • 정렬 작업이 포함되어 O(n long n)

📌 코드 설계하기

  1. 문제의 input에서 정보(총 인원 수, 상을 받는 인원 수)와 점수를 분리합니다.
  2. 정보에서 상을 받는 인원 수를 추출합니다.
  3. 점수들은 공백으로 나누고, 숫자로 변환한 후 내림차순으로 정렬합니다.
  4. 정렬된 점수에서 상을 받는 인원 수의 -1을 하여 인덱스로 값을 구합니다.

📌 정답 코드

//https://www.acmicpc.net/problem/25305
export {};

const fs = require("fs");
const filePath =
  process.platform === "linux" ? "/dev/stdin" : __dirname + "/input1.txt";
const [info, grade] = fs.readFileSync(filePath).toString().trim().split("\n");
const [_, awardee] = info.split(" ");
const sortedGrade = grade
  .split(" ")
  .map((x: number) => Number(x))
  .sort((a: number, b: number) => b - a);
console.log(sortedGrade[awardee - 1]);

'코딩 > 알고리즘' 카테고리의 다른 글

백준) 2775 - 부녀회장이 될테야 JS  (2) 2024.10.16
백준) 2748 - 피보나치 수2 JS  (0) 2024.10.15
백준) 2578 - 빙고 JS  (0) 2024.10.14
백준) 7568 - 덩치 JS  (0) 2024.10.13
백준) 2947 - 나무 조각 JS  (0) 2024.10.12