[백준] - 1205 등수 구하기 (node.js)

밀루·2025년 1월 16일
0

BOJ

목록 보기
51/82

문제링크

코드

// 등수 구하기

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
const arr = fs.readFileSync(filePath).toString().trim().split("\n");

const [n, news, p] = arr[0].split(" ").map(Number);

let rank = -1;

const score = arr[1]?.split(" ").map(Number);

for (let i = 0; i < n; i++) {
  if (score[i] <= news) {
    score.splice(i, 0, news);
    rank = i + 1;
    if (score.length > p && score[p] >= news) { 
      // 넣었는데 랭킹 리스트에 여유 없으면
      rank = -1;
    }
    break;
  } else if (i === n - 1 && n < p) {
    // 랭킹 리스트에 여유있으면
    rank = n + 1;
  }
}

if (n === 0) rank = 1;

console.log(rank);

랭킹 리스트의 모든 점수보다 작고, 랭킹 리스트가 다 차있지 않은 반례를 바로 생각하지 못했다. 앞으론 꼼꼼하게 케이스를 나눠서 테스트해봐야겠다.

profile
이밀루의 도전

0개의 댓글