|
| 1 | +# [Silver I] 로봇 - 13901 |
| 2 | + |
| 3 | +[문제 링크](https://www.acmicpc.net/problem/13901) |
| 4 | + |
| 5 | +### 성능 요약 |
| 6 | + |
| 7 | +메모리: 14816 KB, 시간: 116 ms |
| 8 | + |
| 9 | +### 분류 |
| 10 | + |
| 11 | +구현, 시뮬레이션 |
| 12 | + |
| 13 | +### 제출 일자 |
| 14 | + |
| 15 | +2025년 3월 27일 12:40:00 |
| 16 | + |
| 17 | +### 문제 설명 |
| 18 | + |
| 19 | +<p>해빈이는 로봇을 좋아한다. 로봇을 가지고 놀던 해빈이는 로봇에게 계속해서 명령을 내려 움직이는 대신 이동할 방향을 미리 지정하여 로봇이 알아서 움직이도록 하였다. 이 로봇은 다음과 같은 규칙을 가지고 움직인다.</p> |
| 20 | + |
| 21 | +<ul> |
| 22 | + <li>로봇은 사용자가 지정한 방향을 일직선으로 움직인다.</li> |
| 23 | + <li>이동 중 벽이나 방문한 지역, 장애물을 만날 경우 로봇은 사용자가 지정한 다음 방향으로 움직인다.</li> |
| 24 | + <li>사용자가 지정한 다음 방향이 없다면 맨 처음 방향으로 돌아가서 위의 과정을 반복한다.</li> |
| 25 | + <li>로봇이 움직일 수 없을 경우 동작을 멈춘다. </li> |
| 26 | +</ul> |
| 27 | + |
| 28 | +<table class="table table-bordered"> |
| 29 | + <tbody> |
| 30 | + <tr> |
| 31 | + <td style="height:135px; width:108px"> |
| 32 | + <p>* * *</p> |
| 33 | + |
| 34 | + <p>x 0 *</p> |
| 35 | + |
| 36 | + <p>* * *</p> |
| 37 | + |
| 38 | + <p><초기 상태></p> |
| 39 | + </td> |
| 40 | + <td style="height:135px; width:108px"> |
| 41 | + <p>* 1 *</p> |
| 42 | + |
| 43 | + <p>x 0 *</p> |
| 44 | + |
| 45 | + <p>* * *</p> |
| 46 | + |
| 47 | + <p><1번 째 이동></p> |
| 48 | + </td> |
| 49 | + <td style="height:135px; width:108px"> |
| 50 | + <p>2 1 *</p> |
| 51 | + |
| 52 | + <p>x 0 *</p> |
| 53 | + |
| 54 | + <p>* * *</p> |
| 55 | + |
| 56 | + <p><2번 째 이동></p> |
| 57 | + </td> |
| 58 | + <td rowspan="2" style="height:135px; width:325px"> |
| 59 | + <p>방 크기가 3* 3이고</p> |
| 60 | + |
| 61 | + <p>장애물이 (1, 0)에 있으며</p> |
| 62 | + |
| 63 | + <p>시작 위치는 (1,1)</p> |
| 64 | + |
| 65 | + <p>해빈이가 지정한 방향이 (상, 하, 좌, 우) 일 때,</p> |
| 66 | + |
| 67 | + <p>로봇의 마지막 위치는 (0, 0)이다.</p> |
| 68 | + </td> |
| 69 | + </tr> |
| 70 | + <tr> |
| 71 | + <td colspan="3" style="height:60px; width:325px"> |
| 72 | + <p>2 번째 이동이 끝난 후, 로봇은 움직일 수 없으므로 동작을 멈춘다.</p> |
| 73 | + |
| 74 | + <p>로봇은 (1, 1) → (0, 1) → (0, 0)로 이동하였다.</p> |
| 75 | + </td> |
| 76 | + </tr> |
| 77 | + </tbody> |
| 78 | +</table> |
| 79 | + |
| 80 | +<p>입력으로 방의 크기와 장애물의 개수, 각 장애물들의 위치, 로봇의 시작 위치, 이동 방향의 순서가 주어졌을 때 로봇이 멈추는 위치를 출력하시오. 위치 (0, 0)은 왼쪽 위를 가리키며 방의 크기가 R * C일 때 오른쪽 아래 위치는 (R - 1, C - 1)이 된다. (R은 세로의 크기를 C은 가로의 크기를 말한다.)</p> |
| 81 | + |
| 82 | +### 입력 |
| 83 | + |
| 84 | + <p>첫 번째 줄에는 방의 크기 R, C(3 <strong>≤</strong> R, C <strong>≤</strong> 1,000)가 입력된다. 두 번째 줄에는 장애물의 개수 k(0 <strong>≤</strong> k <strong>≤</strong> 1,000)가 입력된다. 다음 k개의 줄에는 각 장애물 위치 br(0 <strong>≤ </strong>br <strong>≤</strong> R – 1), bc(0 <strong>≤</strong> bc <strong>≤</strong> C - 1)가 주어진다. 그 다음 순서대로 로봇의 시작 위치 sr(0 <strong>≤</strong> sr <strong>≤</strong> R – 1), sc(0 <strong>≤</strong> sc <strong>≤</strong> C - 1)와 이동 방향의 순서(총 4개가 입력되는데 1은 위 방향, 2은 아래 방향, 3은 왼쪽 방향, 4는 오른쪽 방향을 나타낸다)가 한 줄씩 입력된다. 로봇의 시작위치에 장애물이 있는 경우는 없다.</p> |
| 85 | + |
| 86 | +### 출력 |
| 87 | + |
| 88 | + <p>로봇의 마지막 위치 r, c를 출력한다.</p> |
| 89 | + |
0 commit comments