본문 바로가기
알고리즘

[Softeer] 강의실 배정 JS (그리디)

by limew 2024. 1. 25.

https://softeer.ai/practice/6291

 

 

강의가 끝나는 시간이 빠른거만 계속 고르면 된다 greedy

 

const readline = require('readline');
const rl = readline.createInterface({
    input : process.stdin,
    output : process.stdout
});

const lines = [];

rl.on('line', input => {
    lines.push(input.split(' ').map(e => parseInt(e)))
})

rl.on('close', () => {
    const schedules = lines.slice(1).sort((a, b) => a[1]-b[1]); // 끝나는 시간을 기준으로, 오름차순
    let answer = 1;
    let prevEndTime = schedules[0][1];
    for (let i = 1; i < schedules.length; i++) { // 순회하며 가능한 다음 강의가 있으면 answer를 더한다
        const [start, end] = schedules[i];
        if (prevEndTime <= start) {
            answer++;
            prevEndTime = end;
        }
    }
    console.log(answer);
    process.exit();
})