Task description
- 연이은 차량 배열 A가 주어지고 이 차량(?)들은 값을 0s/1s을 가짐.
- 0은 동쪽으로 이동하는 차량, 1은 서쪽으로 이동하는 차량
- 교차해 지나간 차량의 쌍의 수 찾기 (단 쌍을 이루는 첫번째 차량은 0 이어야 함)
How I did solve
글로 풀어서 작성이 안될거 같아서 그림으로 대체 …
결국 반대 방향으로 가는 차량이 나타났을 때, 동일한 방향으로 가는 차량의 수만큼과 교차하므로
각 차량을 순회하면서
교차한 수 = 교차한 수 + 같은 방향으로 가는 차량 수
를 누산하면 된다.
단, 1,000,000,000을 넘어서면 -1 반환.
Solved Code
function solution(A) {
const limit = 1000000000,
condition = 0;
let count = 0,
paired = 0;
A.some ( item => {
if(condition === item) {
++paired;
return false;
}
if(count > limit) return count = -1
else count += paired;
});
return count;
}
Retrospective
- 역시 문제를 이해하는게 문제였다…
- 대체 왜 각 car는 0s 나 1s를 가진다고 문제를 내놓은 건지부터가 허들이었다.
0초나 1초인데 0초는 동쪽을 향해 가고 1초는 서쪽을 향해 간다는게 대체 무슨 말인지 지금도 이해가 안되는건 매한가지다. (문제 풀이에서 초단위는 그냥 무시해버렸는데 되더라;;) - passing cars라는 의미를 해석하는데도 애를 먹었다. "지나가는 차"로 해석을 하니 "교차한 차"일거라고는 생각도 안했던 터라 초단위와 무슨 관계가 있는 줄 알고 (나를 앞서 질러간 차도 passing car라고 생각…) 처음에 초단위에 매여있는 바람에…
- 결론은 영어부터 잘하자… 하아…
Hero image from pixabay
댓글