로봇이 좌표 (0, 0)에서 북쪽을 보고 서 있어요. 명령 문자열 commands가 주어지며, 각 문자는 다음을 뜻해요.
G 는 바라보는 방향으로 한 칸 전진, L 은 제자리에서 왼쪽으로 90도 회전, R 은 오른쪽으로 90도 회전이에요.
모든 명령을 실행한 뒤의 위치를 [x, y] 로 반환해요. 북쪽은 y가 늘어나는 방향, 동쪽은 x가 늘어나는 방향이에요.
위치만 답하면 되지만 방향을 정확히 들고 있어야 위치가 맞아요. 회전을 잘못 구현하면 몇 걸음 뒤부터 어긋나요.
예시
예시 1
예시 2
예시 3
제한 사항
- 1 ≤ commands.length ≤ 10,000
- commands 는 `G`, `L`, `R` 로만 이루어져요.
방향을 델타 배열로 들고 인덱스만 돌려요.
[[0, 1], [1, 0], [0, -1], [-1, 0]] 을 북·동·남·서 순으로 두면 우회전은 +1, 좌회전은 +3 (또는 -1) 이고, 둘 다 % 4 로 감싸요. 좌회전을 -1 로 쓸 때 자바스크립트의 % 는 음수를 그대로 두니 (d + 3) % 4 가 안전해요.javascriptCopy codefunction robotSimulation(commands) {const delta = [[0, 1], [1, 0], [0, -1], [-1, 0]];let dir = 0;let x = 0;let y = 0;for (const c of commands) {if (c === "R") dir = (dir + 1) % 4;else if (c === "L") dir = (dir + 3) % 4;else {x += delta[dir][0];y += delta[dir][1];}}return [x, y];}
예시 테스트만 실행 (Cmd/Ctrl+Enter)
숨김 테스트까지 채점 (Cmd/Ctrl+Shift+Enter)
에디터를 불러오고 있어요…
코드를 작성하고Ctrl↵를 눌러 예시 테스트를 확인해 보세요.