[백준] - 19637 IF문 좀 대신 써줘 (node.js)

밀루·2025년 1월 29일
0

BOJ

목록 보기
65/82

문제링크

코드

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

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

let names = [];
let nums = [];
for (let i = 1; i <= n; i++) {
  const [name, num] = arr[i].split(" ");
  names.push(name);
  nums.push(Number(num));
}

let answer = [];
for (let j = 0; j < m; j++) {
  const power = Number(arr[j + n + 1]);
  let start = (result = 0);
  let end = nums.length;

  while (start <= end) { // 이분탐색
    let mid = Math.floor((start + end) / 2);
    if (power <= nums[mid]) {
      end = mid - 1;
      result = names[mid];
    } else {
      start = mid + 1;
      result = names[start];
    }
  }
  answer.push(result);
}

console.log(answer.join("\n"));
profile
이밀루의 도전

0개의 댓글