Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5023459

Browse files
jaewon1676prove-ability
authored andcommitted
Create 220418 단속카메라 파일 생성 후 1개의 풀이 추가
1 parent 707219b commit 5023459

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

‎level-3/단속카메라.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
//https://github.com/codeisneverodd/programmers-coding-test
2+
//완벽한 정답이 아닙니다.
3+
//정답 1 - jaewon1676
4+
function solution(routes) {
5+
let cctv = 1; // cctv의 개수는 최소 1개
6+
routes.sort((a, b) => a[0] - b[0]); // 고속도로 진입 시점을 기준으로 오름차순 정렬
7+
// [ [ -20, -15 ], [ -18, -13 ], [ -14, -5 ], [ -5, -3 ] ]
8+
let out = routes[0][1]; // -15
9+
// 나간 시점(out)은 첫 차량의 나간시점으로 초기화
10+
11+
for(let i = 1; i < routes.length; i++) {
12+
// 나간 시점(out)보다 현재 차량의 진입이 느리다면 카메라 추가 설치
13+
if(out < routes[i][0]) {
14+
cctv++;
15+
out = routes[i][1]; // out 시점 업데이트
16+
}
17+
18+
// 나간 시점(out)이 현재 차량의 진출시점보다 큰 경우
19+
if(out > routes[i][1]) {
20+
out = routes[i][1]; // out 시점 업데이트
21+
}
22+
}
23+
24+
return cctv;
25+
}
26+
// 그리디
27+
28+
// 우리는 카메라를 최소로 설치 해야합니다. 그러기 위해서는 고속도로 진입 시점을 기준으로 오름차순 정렬을(빨리 진입한 순) 합니다.
29+
// 이렇게 되면 배열에 있는 모든 고속도로 진입 시점은 배열의 첫번째 고속도로 진입 시점보다 더 뒤에 있습니다. 그러므로 우리는
30+
// 나간시점만 검사 해주면 됩니다.
31+
32+
// 먼저 첫번째 routes의 고속도로를 빠져나간 시점을 out 변수에 담아줍니다.
33+
// 이 out 변수를 두번째 routes의 고속도로를 빠져나간 시점과 비교하여 out 변수보다 route[i][1]가 크면 ( 나간 시간이 느리면)
34+
// cctv를 하나 늘려줍니다. , out 변수를 갱신 하며 세번째, 네번째도 계속 비교해줍니다.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /