๐Ÿ”ฅ Algorithm/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.3] ๋‹จ์† ์นด๋ฉ”๋ผ (js)

Lennon 2022. 1. 30. 20:26
728x90
๋ฐ˜์‘ํ˜•

https://programmers.co.kr/learn/courses/30/lessons/42884?language=javascript 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋‹จ์†์นด๋ฉ”๋ผ

[[-20,-15], [-14,-5], [-18,-13], [-5,-3]] 2

programmers.co.kr

function solution(routes) {
    routes.sort((a,b) => a[1]-b[1]);
    
    let camera = 1;
    
    let value = routes.shift()[1];
    
    while(routes.length) {
        if(routes[0][0] <= value && routes[0][1] >= value) {
            routes.shift();
        } else {
            value = routes.shift()[1];
            camera++;
        }
    }
    return camera;
}

 

์•Œ๊ณ ๋ฆฌ์ฆ˜

 

1. ์šฐ์„  ๋‚˜๊ฐ€๋Š” ์‹œ๊ฐ„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์ค€๋‹ค.

- ๋‚˜๊ฐ€๋Š” ์‹œ๊ฐ„์— ์นด๋ฉ”๋ผ์— ์ฐํžˆ๋Š” ๊ฒŒ ์ „์ฒด์ ์œผ๋กœ ๋ดค์„ ๋•Œ ๊ฐ€์žฅ ์œ ๋ฆฌํ•˜๋ฉฐ, ๊ทธ ๋‹ค์Œ ์‹œ๊ฐ„๊ณผ ์ตœ์†Œ ์ฐจ์ด๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. ์ฒซ ๋ฒˆ์งธ ๊ฐ’์˜ ๋‚˜๊ฐ€๋Š” ๊ฐ’์„ ์ง€์ •ํ•ด๋†“๊ณ  while๋ฌธ์„ ๋Œ๋ฆฐ๋‹ค.

- [ [ -20, -15 ], [ -18, -13 ], [ -14, -5 ], [ -5, -3 ] ]  

 

ํ•ด๋‹น ๋ฐฐ์—ด์—์„œ -15๊ฐ’์„ value์— ๋„ฃ๊ณ , shiftํ•ด์ค€๋‹ค.

- [ [ -18, -13 ], [ -14, -5 ], [ -5, -3 ] ], value = -15

 

while๋ฌธ์„ ๋Œ๋ฉด์„œ ๋‹ค์Œ ๊ฐ’์ด -15์— ์œ„์น˜ํ•œ ์นด๋ฉ”๋ผ์— ์ฐํžˆ๋Š” ์ง€(๋ฒ”์œ„์— value๊ฐ’์ด ์žˆ๋Š” ์ง€) ํ™•์ธํ•œ๋‹ค.

๋งŒ์•ฝ ์ฐํžŒ๋‹ค๋ฉด ๊ทธ๋ƒฅ shift๋ฅผ ์ด์šฉํ•ด ์—†์• ์ค€๋‹ค.

- [[ -14, -5 ], [ -5, -3 ] ], value = -15  // ์ฐํžˆ๋ฏ€๋กœ shift()

   

๋งŒ์•ฝ ์ฐํžˆ์ง€ ์•Š๋Š”๋‹ค๋ฉด value๊ฐ’์„ ๋‹ค์‹œ [0][1]๋กœ ์ง€์ •ํ•ด์ฃผ๊ณ , ํ•ด๋‹น ๊ฐ’์— ์นด๋ฉ”๋ผ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

- [[ -5, -3 ] ], value = -5. 

๋งˆ์ง€๋ง‰๋„ -5์— ํฌํ•จ๋˜๋ฏ€๋กœ shift๋˜๋ฉฐ ํ•ด๋‹น while๋ฌธ์ด ๋๋‚˜๊ฒŒ ๋œ๋‹ค.

 

 

728x90
๋ฐ˜์‘ํ˜•