๋ฌธ์ ์ค๋ช
๊ณ ์๋๋ก๋ฅผ ์ด๋ํ๋ ๋ชจ๋ ์ฐจ๋์ด ๊ณ ์๋๋ก๋ฅผ ์ด์ฉํ๋ฉด์ ๋จ์์ฉ ์นด๋ฉ๋ผ๋ฅผ ํ ๋ฒ์ ๋ง๋๋๋ก ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ ค๊ณ ํฉ๋๋ค.
๊ณ ์๋๋ก๋ฅผ ์ด๋ํ๋ ์ฐจ๋์ ๊ฒฝ๋ก routes๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฐจ๋์ด ํ ๋ฒ์ ๋จ์์ฉ ์นด๋ฉ๋ผ๋ฅผ ๋ง๋๋๋ก ํ๋ ค๋ฉด ์ต์ ๋ช ๋์ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํด์ผ ํ๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ์ฌํญ
์ ์ถ๋ ฅ ์
routes | return |
---|---|
[[-20,-15], [-14,-5], [-18,-13], [-5,-3]] | 2 |
์ ์ถ๋ ฅ ์ ์ค๋ช
-5 ์ง์ ์ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ฉด ๋ ๋ฒ์งธ, ๋ค ๋ฒ์งธ ์ฐจ๋์ด ์นด๋ฉ๋ผ๋ฅผ ๋ง๋ฉ๋๋ค.
-15 ์ง์ ์ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ฉด ์ฒซ ๋ฒ์งธ, ์ธ ๋ฒ์งธ ์ฐจ๋์ด ์นด๋ฉ๋ผ๋ฅผ ๋ง๋ฉ๋๋ค.
ํ์ด ์์
function solution(routes) {
routes.sort((a,b) => a[0] - b[0])
// ์ฒ์ ์ฐจ๋ฅผ ๊ฒ์ฌํด์ผํจ
let setCamera = 1
let prevOut = routes[0][1]
for(let i = 1 ; i < routes.length ; i ++) {
const [carIn,carOut] = routes[i]
// ๊ฒน์น์ง ๋ชปํ ๊ฒฝ์ฐ ๋๊ฐ๋ ์์ ์ ํ์ฌ ์์ ์ผ๋ก ๋ณ๊ฒฝํ๊ณ ์นด๋ฉ๋ผ๋ฅผ 1๋ ์ถ๊ฐ ์ค์นํ๋ค
if(prevOut < carIn) {
setCamera++
prevOut = carOut
}
// ๊ฒน์น ๊ฒฝ์ฐ ์ด์ ์ฐจ๋๋ณด๋ค ํ์ฌ ์ฐจ๋์ด ๋จผ์ ๋๊ฐ๋ค๋ฉด ๋ค์ ์นด๋ฉ๋ผ ์ค์น๋ฅผ ์ํด ํ์ฌ ์ฐจ๋์ ๋๊ฐ๋ ์์ ์ผ๋ก ์์ ์ ๋ณ๊ฒฝ
if(prevOut > carOut) {
prevOut = carOut
}
}
return setCamera
}