4025 : 로봇 명령 실행
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 3
•통과: 2
•만든사람: suakii
문제 설명
2차원 격자 위에 있는 로봇에게 명령을 내려 최종 위치와 방향을 구한다.
로봇은 초기 위치 $(X, Y)$와 방향 $D$로 시작한다. 방향은 N(북), E(동), S(남), W(서) 중 하나이다.
명령은 세 종류이다.
모든 명령을 수행한 후의 최종 위치와 방향을 출력하라.
[제약 조건]
• $D \in \{ \text{N}, \text{E}, \text{S}, \text{W} \}$
• $1 \le (\text{명령 문자열의 길이}) \le 200$
• 초기 X좌표와 Y좌표는 정수
로봇은 초기 위치 $(X, Y)$와 방향 $D$로 시작한다. 방향은 N(북), E(동), S(남), W(서) 중 하나이다.
명령은 세 종류이다.
- L : 왼쪽으로 90도 회전 (제자리에서, 이동 없음)
- R : 오른쪽으로 90도 회전 (제자리에서, 이동 없음)
- F : 현재 방향으로 1칸 전진
모든 명령을 수행한 후의 최종 위치와 방향을 출력하라.
[제약 조건]
• $D \in \{ \text{N}, \text{E}, \text{S}, \text{W} \}$
• $1 \le (\text{명령 문자열의 길이}) \le 200$
• 초기 X좌표와 Y좌표는 정수
입력 설명
첫째 줄에 초기 X좌표, Y좌표, 방향 $D$가 공백으로 구분되어 주어집니다.
둘째 줄에 로봇 명령 문자열이 주어집니다.
둘째 줄에 로봇 명령 문자열이 주어집니다.
출력 설명
명령을 모두 수행한 후의 최종 X좌표, Y좌표, 방향을 공백으로 구분하여 한 줄에 출력한다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
0 0 N
FFF
출력 예시
COPY
복사되었습니다!
복사되었습니다!
0 3 N
도움
방향 벡터 (dx, dy):
N: (0, +1), E: (+1, 0), S: (0, -1), W: (-1, 0)
방향 순서 배열을 [N, E, S, W]로 두면,
L: 인덱스를 -1 (mod 4), R: 인덱스를 +1 (mod 4) 로 변경하면 된다.
N: (0, +1), E: (+1, 0), S: (0, -1), W: (-1, 0)
방향 순서 배열을 [N, E, S, W]로 두면,
L: 인덱스를 -1 (mod 4), R: 인덱스를 +1 (mod 4) 로 변경하면 된다.