아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

잘못된 방향

시간 제한1초메모리 제한128 MB

요약
F, L, R로 이루어진 명령 문자열에서 정확히 한 글자를 다른 글자로 바꿀 때 도달할 수 있는 서로 다른 최종 위치의 개수를 센다.
난이도

보통10점 중 7점

유형
시뮬레이션, 해시맵, 누적 합, 수학
정답자
아직 제출이 없습니다

문제

농부 존은 새로 산 프로그래밍 가능한 트랙터를 가지고 있다. 트랙터를 움직이려면 문자 F, L, R로만 이루어진 길이 NN (1≤N≤100,0001 \le N \le 100{,}000)의 명령 문자열을 입력한다. F는 트랙터가 현재 바라보는 방향으로 한 칸 전진하게 하고, L은 왼쪽으로 90도, R은 오른쪽으로 90도 회전시킨다(회전은 위치를 바꾸지 않는다). 트랙터는 원점 (0,0)(0,0)에서 북쪽을 바라본 채로 시작한다.

의도한 명령 문자열을 입력한 뒤, 존은 정확히 한 글자를 잘못 입력했다는 것을 깨달았지만 어느 글자인지는 기억하지 못한다. 잘못 입력된 글자는 원래 의도한 글자가 아닌 나머지 두 글자 중 하나이다(예를 들어 R을 입력하려던 자리에 F나 L을 입력했을 수 있다). 정확히 한 글자가 잘못 입력되는 모든 경우를 고려할 때, 트랙터가 도착할 수 있는 서로 다른 최종 위치가 몇 개인지 구하여라. 최종적으로 바라보는 방향은 상관없다.

입력

존이 의도한 명령 문자열이 한 줄에 주어진다(길이는 NN).

출력

명령 문자열에서 정확히 한 글자가 잘못 입력되었을 때, 트랙터가 도착할 수 있는 서로 다른 위치의 개수를 정수 하나로 출력한다.

힌트

예시에서 존은 앞으로 두 번 전진하여 (0,2)(0,2)에 도착하려 했다. 정확히 한 글자를 잘못 입력하면 가능한 문자열은 FL, FR, LF, RF 네 가지이며, 각각 (0,1)(0,1), (0,1)(0,1), (−1,0)(-1,0), (1,0)(1,0)에 도착하므로 서로 다른 위치는 총 33개이다.

예제1

  1. 예제 1

    입력
    FF
    
    예상 출력
    3