로봇 명령
시간 제한2초메모리 제한128 MB
전진과 회전, 스캔 명령으로 이루어진 옛 로봇의 명령을 시뮬레이션해 같은 순서로 같은 칸을 스캔하는 신형 로봇의 최소 명령 수를 구하는 문제입니다.
문제
구형 탐사 로봇은 다음 네 가지 명령을 수행할 수 있다.
Forward: 한 칸 앞으로 이동한다.Turn Left: 왼쪽으로 90도 회전한다.Turn Right: 오른쪽으로 90도 회전한다.Scan: 로봇 바로 앞 한 칸을 조사한다.
로봇은 지형을 격자로 인식하므로 회전은 항상 90도 단위로만 이루어진다. 따라서 반대 방향을 바라보려면 회전 명령을 두 번 내려야 한다.
신형 로봇은 다음 두 가지 형태의 명령만 사용한다.
Move [방향] [N]:[방향]쪽으로 회전한 뒤 그 방향으로N칸 이동한다.[방향]은Forward,Back,Left,Right중 하나이고,N은 양의 정수이다. 이동이 끝난 뒤에도 로봇은 이동한 방향을 바라본다.Scan [방향]:[방향]쪽으로 회전한 뒤 그 방향의 바로 앞 한 칸을 조사한다.[방향]은Forward,Back,Left,Right중 하나이다. 조사가 끝난 뒤에도 로봇은 조사한 방향을 바라본다.
구형 로봇이 실행한 명령열이 주어진다. 신형 로봇이 같은 순서로 같은 칸들을 조사하도록 만들 때 필요한 명령 개수의 최솟값을 구하시오.
구형 로봇과 신형 로봇은 같은 위치에서 같은 방향을 바라보고 시작한다. 신형 로봇이 중간에 지나가는 경로는 구형 로봇과 달라도 되며, 조사하는 칸과 그 순서만 같으면 된다. 같은 칸을 여러 번 조사하는 경우에는 신형 로봇도 그 칸을 같은 횟수만큼 조사해야 한다. 로봇은 나중에 조사해야 할 칸을 지나갈 수도 있다.
입력
첫째 줄에 구형 로봇이 수행한 명령의 개수 N이 주어진다 (1 <= N <= 100,000).
다음 N개의 줄에는 구형 로봇의 형식에 맞는 명령이 한 줄에 하나씩 주어진다.
출력
신형 로봇에 필요한 명령 개수의 최솟값을 출력한다.