사과
시간 제한1초메모리 제한128 MB
사과가 하나 있는 보드에서 회전과 대기를 반복하는 게임을 시뮬레이션하고 최종 보드를 출력한다.
문제
크기의 게임 판이 있다. 각 칸은 비어 있거나 막혀 있으며, 한 칸에는 사과가 있다. 사과는 항상 중력 방향, 즉 화면 아래쪽으로 떨어진다.
매 초마다 플레이어는 화면을 시계 방향으로 90도 돌리거나, 반시계 방향으로 90도 돌리거나, 아무것도 하지 않고 기다릴 수 있다. 화면을 돌리면 판 전체가 화면과 함께 돌아가고, 중력은 계속 화면 아래쪽을 향한다. 그다음 사과는 화면 아래쪽으로 한 칸 떨어진다. 단, 사과 바로 아래 칸이 판 안에 있고 비어 있을 때만 떨어지며, 그렇지 않으면 사과는 제자리에 머문다.
처음 판 상태와 행동 순서가 주어질 때 모든 행동을 마친 뒤의 판 상태를 출력하는 시뮬레이터를 작성하시오. 판에서 #은 막힌 칸, .은 빈 칸, J는 사과의 위치를 나타낸다.
입력
첫째 줄에 판의 행 수 과 열 수 가 주어진다. ()
다음 개 줄에는 각각 정확히 개의 문자가 주어진다. 각 문자는 대문자 J, .(점), # 중 하나이다. 판에 J는 정확히 하나 있다.
마지막 줄에는 행동 순서를 나타내는 길이 1,000,000 이하의 문자열이 주어진다. 각 문자의 의미는 다음과 같다.
R: 화면을 시계 방향으로 돌린다.L: 화면을 반시계 방향으로 돌린다.P: 기다린다.
출력
모든 행동을 마친 뒤 화면에 보이는 방향 그대로 판을 출력한다. 최종 회전 상태에 따라 행 열 또는 행 열의 표가 된다.