문제 설명
n x m 크기의 자연수로 이루어진 이차원 배열 board와 로봇의 쿼리 명령에 해당하는 queries가 매개변수로 주어집니다. board의 첫 번째 행, 첫 번째 열(가장 왼쪽 위)에서 아래 방향을 바라본 상태로 로봇이 출발한다고 가정할 때, 로봇이 쿼리 명령을 순서대로 수행하면서 얻은 점수의 총합을 반환하는 solution 함수를 작성하시오.
쿼리 명령은 아래와 같이 총 5가지 종류가 있습니다.
Move Forward: 로봇이 바라보고 있는 방향으로 1칸 이동합니다. 이동할 수 없다면 현재 위치를 유지합니다.Move Backward: 로봇이 바라보고 있는 방향의 반대 방향으로 1칸 이동합니다. 이동할 수 없다면 현재 위치를 유지합니다.Turn Left: 로봇이 바라보고 있는 방향이 반시계 방향으로 90도 회전합니다. 로봇의 위치는 변하지 않습니다.Turn Right: 로봇이 바라보고 있는 방향이 시계방향으로 90도 회전합니다. 로봇의 위치는 변하지 않습니다.Get Score: 현재 로봇이 위치한 칸의 원소를 점수로 얻습니다. 로봇의 위치는 변하지 않습니다.
제한 사항
board의 크기n과m은 각각 2 이상 20 이하입니다.n과m은 서로 다를 수 있습니다.board의 각 원소board[i][j]는 1 이상 1000 이하의 자연수입니다.queries의 길이는 5 이상 1000 이하입니다.queries의 원소는Move Forward,Move Backward,Turn Left,Turn Right,Get Score중 하나입니다.queries에Get Score쿼리 명령이 적어도 1번 이상 주어집니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | board | queries | return |
|---|---|---|---|
| 1 | [[4,7,18,20],[11,16,1,4],[1,16,7,12]] | ["Move Backward","Move Forward","Get Score","Turn Left","Move Forward"] | 11 |
| 2 | [[15,1,6],[4,6,17],[2,16,17],[18,8,8],[5,17,10]] | ["Get Score","Move Forward","Move Forward","Turn Left","Move Backward","Get Score","Get Score","Move Forward","Get Score"] | 35 |
| 3 | [[5,16,9],[8,18,5],[1,1,15],[20,18,16],[19,4,15]] | ["Turn Right","Move Forward","Get Score","Turn Right","Turn Right","Get Score","Move Backward","Turn Right","Get Score"] | 15 |
1번 테스트케이스 설명
| query | 로봇 위치(행, 열) | 로봇 방향 | 총점 |
|---|---|---|---|
| - | (0, 0) | ↓ | 0 |
| Move Backward | (0, 0) | ↓ | 0 |
| Move Forward | (1, 0) | ↓ | 0 |
| Get Score | (1, 0) | ↓ | 11 |
| Turn Left | (1, 0) | → | 11 |
| Move Forward | (1, 1) | → | 11 |
2번 테스트케이스 설명
| query | 로봇 위치(행, 열) | 로봇 방향 | 총점 |
|---|---|---|---|
| - | (0, 0) | ↓ | 0 |
| Get Score | (0, 0) | ↓ | 15 |
| Move Forward | (1, 0) | ↓ | 15 |
| Move Forward | (2, 0) | ↓ | 15 |
| Turn Left | (2, 0) | → | 15 |
| Move Backward | (2, 0) | → | 15 |
| Get Score | (2, 0) | → | 17 |
| Get Score | (2, 0) | → | 19 |
| Move Forward | (2, 2) | → | 19 |
| Get Score | (2, 2) | → | 35 |
3번 테스트케이스 설명
| query | 로봇 위치(행, 열) | 로봇 방향 | 총점 |
|---|---|---|---|
| - | (0, 0) | ↓ | 0 |
| Turn Right | (0, 0) | ← | 0 |
| Move Forward | (0, 0) | ← | 0 |
| Get Score | (0, 0) | ← | 5 |
| Turn Right | (0, 0) | ↑ | 5 |
| Turn Right | (0, 0) | → | 5 |
| Get Score | (0, 0) | → | 10 |
| Move Backward | (0, 0) | → | 10 |
| Turn Right | (0, 0) | ↓ | 10 |
| Get Score | (0, 0) | ↓ | 15 |