백준 11000 JavaScript
수정하기
문서 생성 2022-04-22 22:29:00 최근 수정 2022-04-22 23:56:51
문제
풀이
const readFileSyncPath = require("path").basename(__filename).replace(/js$/, "txt");// const readFileSyncPath = '/dev/stdin';const input = require("fs").readFileSync(readFileSyncPath).toString().trim().split("\n");// s시작 ~ t끝, N개의 수업// 최소의 강의실로 모든 수업 가능하게 해야 한다.const N = Number(input[0]);let lectures = [];for (let i = 1; i <= N; i++) {lectures.push(input[i].split(" ").map(Number));}const schedules = [];// 시간대별로 배열에 입력lectures.forEach((lecture) => {schedules.push({ time: lecture[0], start: 1 });schedules.push({ time: lecture[1], start: -1 });});schedules.sort((a, b) =>a.time === b.time ? a.start - b.start : a.time - b.time);let cnt = 0;let answer = 0;schedules.forEach((schedule) => {// 한 강의가 시작되면if (schedule.start === 1) {cnt++; // 강의실 사용} else if (schedule.start === -1) {// 한 강의가 종료되면cnt--;}// 최대로 사용되는 강의실 수 확인answer = Math.max(answer, cnt);});console.log(answer);// 참고 : https://junghyeonsu.tistory.com/275// 그리디// 우선순위 큐