728x90
문제 설명
문제 풀이 방법
- 입력의 구성은 차들의 수, 차들이 들어간 순서, 나온 순서 이렇게 3가지이다.
나온 순서를 기준으로 forEach메서드를 이용해 요소들을 순회하며
passed의 요소가 enters에서의 위치를 보면
1. passed의 다른 값이 추월을 하지 않았다면 현제값이 enters의 0번 인덱스에 위치해 있을 것
2. 만약 다른 값이 추월을 했다면 현제 값은 enters에서의 위치가 0번 인덱스가 아닌 다른 인덱스에 위치할 것
1번의 경우 enters.shift()를 이용해 맨 앞 값을 빼주고 다시 1, 2번 로직을 반복해준다.
2번은 추월을 한 경우이므로 현제 값을 enters.splice(enters.indexOf(현제값), 1)로 제거해 준뒤 1, 2번 로직 반복
코드
const path = __dirname + '/예제.txt'; // /dev/stdin
let input = require('fs').readFileSync(path).toString().trim().split('\n');
const num = +input.shift();
const enters = input.slice(0, num).map((e) => e.trim());
const passed = input.slice(num).map(e => e.trim());
let cnt = 0
passed.forEach(car => {
if (enters[0] === car) {
enters.shift();
}
else {
enters.splice(enters.indexOf(car), 1);
cnt += 1;
}
})
console.log(cnt);
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[Nodejs] 17178번 줄서기 (0) | 2023.06.23 |
---|---|
[Nodejs] 17952번 과제는 끝나지 않아! (0) | 2023.06.22 |
[Nodejs] 16926번 배열돌리기 1 (0) | 2023.06.19 |
[Nodejs] 골드V / 14500번 테트로미노 (0) | 2023.06.19 |
[Nodejs] 실버II / 1138번 한 줄로 서기 (0) | 2023.06.16 |