학습
시험

로봇 여행 게임 2

난이도
BEGINNER

문제 설명

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