[ํ๋ก๊ทธ๋๋จธ์ค Lv.3] ๋จ์ ์นด๋ฉ๋ผ (js)
https://programmers.co.kr/learn/courses/30/lessons/42884?language=javascript
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๋ฌธ์ด ๋๋๊ฒ ๋๋ค.