๐ŸŽฒ ๋ฐฑ์ค€ 11000๋ฒˆ ๊ฐ•์˜์‹ค ๋ฐฐ์ •

Jeongeunยท2023๋…„ 7์›” 26์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
102/186

๋ฐฑ์ค€ 11000๋ฒˆ
์—…๋กœ๋“œ์ค‘..

๐Ÿงธ ๋‚ด๊ฐ€ ์ฒ˜์Œ ์ƒ๊ฐํ•œ ์ฝ”๋“œ๋Š” ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.. ์‹œ๊ฐ„์ œํ•œ์ด ์—†๋‹ค๋ฉด ๋งž์•˜์„๊นŒ..? ๋‹ค๋ฅธ ์•„์ด๋””์–ด๊ฐ€ ๋– ์˜ค๋ฅด์ง€ ์•Š์•„ ๊ฒฐ๊ตญ ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ํ•ด๊ฒฐํ–ˆ๋‹ค๐Ÿ˜ข

์ •๋‹ต ์ฝ”๋“œ

const fs = require('fs'); 
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
input.shift();

let schedule = [];

input.forEach((item) => {
  const [start, end] = item.split(" ").map(Number);
  //์ˆ˜์—… ์‹œ์ž‘ ์‹œ๊ฐ„
  schedule.push([start, 1]);
  //์ˆ˜์—… ์ข…๋ฃŒ ์‹œ๊ฐ„
  schedule.push([end, -1]);
});

//์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ, ์‹œ๊ฐ„์ด ๊ฐ™์œผ๋ฉด ์ข…๋ฃŒ ์‹œ๊ฐ„(-1)์ด ์•ž์—
schedule.sort((a, b) => (a[0] === b[0] ? a[1] - b[1] : a[0] - b[0]));

let room = 0;
let result = 0;
for (let i = 0; i < schedule.length; i++) {
  if (schedule[i][1] === 1) {
    //๊ฐ•์˜๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ๋ฐฉ ๊ฐœ์ˆ˜ ์ฆ๊ฐ€
    room++;
  } else {
    //๊ฐ•์˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋ฐฉ ๊ฐœ์ˆ˜ ๊ฐ์†Œ
    room--;
  }
  //๋‹ต์€ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ตœ๋Œ€๊ฐ€ ๋ ๋•Œ
  result = Math.max(room, result);
}

console.log(result)

์‹œ๊ฐ„์ดˆ๊ณผ ์ฝ”๋“œ

const fs = require('fs'); 
let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const N = +input.shift();

input = input
  .map((item) => item.split(" ").map(Number))
  .sort((a, b) => a[0] - b[0]);

let room = [input.shift()];

for (let i = 0; i < N - 1; i++) {
  //์•„์ง ๊ฐ•์˜์‹ค ๋ฐฐ์ • ์•ˆ๋ฐ›์€ ์ˆ˜์—…
  const [start, end] = input[i];
  let isChange = false;
  for (let r = 0; r < room.length; r++) {
    //๊ฐ•์˜์‹ค ๋ฐฐ์ • ๋ฐ›์€ ์ˆ˜์—…
    const [rStart, rEnd] = room[r];

    if (rEnd <= start) {
      room[r] = [start, end];
      isChange = true;
      break;
    }
  }
  if (!isChange) {
    room.push([start, end]);
  }
}
console.log(room.length);

0๊ฐœ์˜ ๋Œ“๊ธ€