개발자 홍창기

Web Developer

BOJ - 회의실 배정

Link

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

접근 방법

  • N개의 회의에 대해 각 회의의 시작 시간, 종료 시간이 주어진다.
  • 그럼 한 개의 회의실에 최대 몇 개의 회의를 배정할 수 있는지 계산하면 된다.
  • 그리디 유형이며, 핵심 해결 아이디어는 오름차순 정렬이다.

Code

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin", "utf8").trim().split("\n");

const n = Number(input[0]);
const timeTable = input
  .slice(1, n + 1)
  .map((line) => line.split(" ").map(Number));

timeTable.sort((a, b) => a[1] - b[1] || a[0] - b[0]);

let cnt = 1;
let cur = 0;
for (let i = 1; i < n; i++) {
  if (timeTable[cur][1] <= timeTable[i][0]) {
    cur = i;
    cnt++;
  }
}

console.log(cnt);