본문으로 건너뛰기

BOJ - 회의실 배정

BOJ - 회의실 배정

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);