ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

ํ˜„์ˆ˜๋Š” ๋‹ค์Œ ๋‹ฌ์— ๊ฒฐํ˜ผ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋Š” ๊ฒฐํ˜ผ์‹ ํ”ผ๋กœ์—ฐ์„ ์žฅ์†Œ๋ฅผ ๋นŒ๋ ค 3์ผ๊ฐ„ ์‰ฌ์ง€ ์•Š๊ณ  ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
ํ”ผ๋กœ์—ฐ์— ์ฐธ์„ํ•˜๋Š” ์นœ๊ตฌ๋“ค N๋ช…์˜ ์ฐธ์„ํ•˜๋Š” ์‹œ๊ฐ„์ •๋ณด๋ฅผ ํ˜„์ˆ˜๋Š” ์นœ๊ตฌ๋“ค์—๊ฒŒ ๋ฏธ๋ฆฌ ์š”๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ฐ ์นœ๊ตฌ๋“ค์€ ์ž์‹ ์ด ๋ช‡ ์‹œ์— ๋„์ฐฉํ•ด์„œ ๋ช‡ ์‹œ์— ๋– ๋‚  ๊ฒƒ์ธ์ง€ ํ˜„์ˆ˜์—๊ฒŒ ์•Œ๋ ค์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋Š” ์ด ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ”ผ๋กœ์—ฐ ์žฅ์†Œ์— ๋™์‹œ์— ์กด์žฌํ•˜๋Š” ์ตœ๋Œ€ ์ธ์›์ˆ˜๋ฅผ ๊ตฌํ•˜์—ฌ ๊ทธ ์ธ์›์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์†Œ๋ฅผ ๋นŒ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์ด ํ˜„์ˆ˜๋ฅผ ๋„์™€์ฃผ์„ธ์š”.

(๋งŒ์•ฝ ํ•œ ์นœ๊ตฌ๊ฐ€ ์˜ค๋Š” ์‹œ๊ฐ„ 13, ๊ฐ€๋Š”์‹œ๊ฐ„ 15๋ผ๋ฉด ์ด ์นœ๊ตฌ๋Š” 13์‹œ ์ •๊ฐ์— ํ”ผ๋กœ์—ฐ ์žฅ์— ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๊ณ  15์‹œ ์ •๊ฐ์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค)

 

๋ฌธ์ œํ’€์ด

  • ์ด๋ฒคํŠธ๊ฐ€ start(์ฐธ์„์‹œ๊ฐ„)๊ณผ end(๋– ๋‚œ์‹œ๊ฐ„) ๋‘ ๊ฐœ๋กœ ๋‚˜๋‰œ๋‹ค.
  • ๊ฐ ์‹œ๊ฐ„๊ณผ ํ•ด๋‹น ์‹œ๊ฐ„์— ์ผ์–ด๋‚œ ์ด๋ฒคํŠธ๋ฅผ ํ•œ ์Œ์œผ๋กœ ์ƒˆ๋กœ์šด ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹œ๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ์„ ํ•˜๋˜, ๋งŒ์•ฝ์— ์‹œ๊ฐ„์ด ๋˜‘๊ฐ™๋‹ค๋ฉด ์ด๋ฒคํŠธ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค.
  • ์ด๋ฒคํŠธ ๋น„๊ต ์‹œ, ์ด๋ฒคํŠธ์— ๋จผ์ € ๋„์ฐฉํ•œ ์นœ๊ตฌ๊ฐ€ ๋– ๋‚œ ์‹œ๊ฐ„์ด ์•ž์œผ๋กœ ์™€์•ผ๋˜๊ณ  ์ƒˆ๋กœ ์˜จ ์นœ๊ตฌ๊ฐ€ ์ฐธ์„ํ•œ ์‹œ๊ฐ„์ด ๋’ค๋กœ ์ •๋ ฌ๋˜์–ด์•ผ ํ•œ๋‹ค.

์ฝ”๋“œ

function solution(...times) {
  let answer = Number.MIN_SAFE_INTEGER;
  let timeLine = [];
  
  for(let x of times) { //์ฐธ์„์‹œ๊ฐ„๊ณผ ๋– ๋‚œ์‹œ๊ฐ„ ๋‘ ์ด๋ฒคํŠธ์™€ ๊ฐ ์‹œ๊ฐ„์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.
    timeLine.push([x[0], 's']); 
    timeLine.push([x[1], 'e']); 
  }
  timeLine.sort((a, b) => {
    if(a[0] === b[0]) return a[1].charCodeAt() - b[1].charCodeAt(); //์‹œ๊ฐ„์ด ๊ฐ™๋‹ค๋ฉด ์ด๋ฒคํŠธ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋‚˜๋ˆˆ๋‹ค(์•„์Šคํ‚ค์ฝ”๋“œ ์‚ฌ์šฉ)
    else return a[0] - b[0]; //๊ธฐ๋ณธ์ ์œผ๋กœ ์‹œ๊ฐ„ ์ˆœ๋Œ€๋กœ ์ •๋ ฌ
  })
  let cnt = 0;
  for(let x of timeLine) {
    if(x[1] === 's') cnt++;
    else if(x[1] === 'e') cnt--;
    answer = Math.max(answer, cnt);
  }
  return answer;
}

console.log(solution([14, 18], [12, 15], [15, 20], [20, 30], [5, 14]));

 

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ