๋ฏธ์šฉ์‹ค

์„ฑ๊ณต์—ฌ๋ถ€
NO
๊ฑธ๋ฆฐ์‹œ๊ฐ„(๋ถ„)
์ •๋ฆฌ
์™„๋ฃŒ
๋ฌธ์ œ์ถœ์ฒ˜
์ œ๋กœ๋ฒ ์ด์Šค
์ƒ์„ฑ ์ผ์‹œ
Apr 16, 2025 11:47 AM

1๏ธโƒฃ ๋ฌธ์ œ

notion image

2๏ธโƒฃ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต

ํ™œ๋™์„ ํƒ ๋ฌธ์ œ, ํšŒ์˜์‹ค ๋ฐฐ์ • ๋ฌธ์ œ
  1. ์ข…๋ฃŒ ์‹œ๊ฐ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
  1. ๊ฐ€์žฅ ๋นจ๋ฆฌ ๋๋‚˜๋Š” ์†๋‹˜(idx=0)๋ถ€ํ„ฐ ์„ ํƒ
  1. ์„ ํƒํ•œ ์†๋‹˜์˜ ๋๋‚˜๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ๋Šฆ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ์†๋‹˜์ด ๋‹ค์Œ ์†๋‹˜(count+1) โ‡’ ๋ฐ˜๋ณต

3๏ธโƒฃ ์ฝ”๋“œ ๋ฐ ์„ค๋ช…

๋‚ด ์ฝ”๋“œ
  1. ์ธ๋ฑ์Šค
    1. function solution(N, reserved) { var answer = 1; reserved.sort((a,b)=>a[0]-b[0]||a[1]-b[1]) var [start,end] = reserved[0] for (let i=1;i<N;i++) { var [nstart,nend]=reserved[i] if (end<=nstart) { start = nstart end = nend answer++ } else if (end-start>nend-nstart) { start = nstart end = nend } } return answer; }
  1. dfs โ‡’ ์‹œ๊ฐ„์ดˆ๊ณผ
    1. function solution(N, reserved) { var answer = 0; reserved.sort((a,b)=>a[0]-b[0]||a[1]-b[1]) function dfs(idx,count) { for (let i=idx+1;i<N;i++) { if (idx===-1 || reserved[idx][1]<=reserved[i][0]) { dfs(i,count+1) } } answer=Math.max(answer,count) } dfs(-1,0) return answer; }
 
๋ชจ๋ฒ” ์ฝ”๋“œ
function solution(N, reserved) { var answer = 1; reserved.sort((a,b)=>a[1]-b[1]) var end = reserved[0][1] for (let i=1;i<N;i++) { var [nstart,nend]=reserved[i] if (end<=nstart) { end = nend answer++ } } return answer; }
 

4๏ธโƒฃ ์‹œ๊ฐ„๋ณต์žก๋„

O(NlogN) โ‡’ because ์ •๋ ฌ