File tree Expand file tree Collapse file tree 1 file changed +49
-0
lines changed
Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change 1+ // https://school.programmers.co.kr/learn/courses/30/lessons/172928
2+
3+ function solution(park, routes) {
4+ let answer;
5+ for (let i = 0; i < park.length; i++) {
6+ for (let j = 0; j < park[i].length; j++) {
7+ if (park[i][j] === "S") {
8+ answer = [i, j];
9+ break;
10+ }
11+ }
12+ }
13+
14+ const [row, col] = [park.length, park[0].length];
15+ const map = {
16+ E: [0, 1],
17+ W: [0, -1],
18+ N: [-1, 0],
19+ S: [1, 0],
20+ };
21+
22+ for (let route of routes) {
23+ const [op, n] = route.split(" ");
24+ const [dx, dy] = map[op];
25+ const [x, y] = answer;
26+ const newX = x + dx * Number(n);
27+ const newY = y + dy * Number(n);
28+
29+ // 다음 위치가 공원을 벗어나는지 체크
30+ if (newX < 0 || newX >= row || newY < 0 || newY >= col) continue;
31+
32+ // 장애물 체크
33+ let isBlocked = false;
34+ for (let i = 1; i <= Number(n); i++) {
35+ const checkX = x + dx * i;
36+ const checkY = y + dy * i;
37+ if (park[checkX][checkY] === "X") {
38+ isBlocked = true;
39+ break;
40+ }
41+ }
42+
43+ if (!isBlocked) {
44+ answer = [newX, newY];
45+ }
46+ }
47+
48+ return answer;
49+ }
You can’t perform that action at this time.
0 commit comments