페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5025
서브태스크

하노이 탑 검증하기 1 1s 128MB

문제

하노이 문제는 기둥을 1, 2, 3 번으로 하고, N개의 원판이 작은 것부터 1, 2, 3, 4 … N이라고 할 때, 

아래의 규칙에 따라 1번 기둥에 있는 모든 원판을 3번 기둥으로 이동하는 문제이다.

규칙1) 한 번에 하나의 원판만 이동시킨다.

규칙2) 작은 원판위에 큰 원판을 놓을 수 없다.​

하노이 탑 완구를 가지고 위 문제를 풀던 수정이는 당신에게 ​현재 상태를 보여주며 ​이 상태가 올바른 상태인지 물어보았다.

올바른 상태란, ​위 규칙대로 ​최소 이동 횟수로 하노이 탑 문제를 해결하는 과정에서 나오는 상태를 말한다.

예를 들어​, 입력이 211이면, 가장 작은 원판은 2번 기둥에, 그다음 원판은 1번 기둥에, 가장 큰 원판도 1번 기둥에 있을 때, 

아래 그림처럼 올바르지 않은 상태다. (최소 이동 횟수대로 이동하면 나올 수 없는 상황이다)

현재 원판들의 위치 상태가 주어졌을 때 수정이의 하노이 탑이 올바른 상태인지 알려주자.


입력

100 이하의 자연수인 테스트 케이스의 수 T가 첫번째 줄에 주어진다.

그 다음, T줄마다 원판들의 위치 번호가 주어진다.

원판들의 위치번호 S는 ​작은 원판에서 큰 원판 순서대로 주어지며, 공백없이 1,2,3 숫자로 주어진다.

주어지는 하노이 탑 완구의 원판 수는 1개 이상 1,000,000개 이하이다. 즉, S의 길이는 1 이상 1,000,000 이하다.


출력

각 테스트 케이스마다 한 줄로 올바른 상태의 여부를 출력한다. 

올바른 상태일 경우 YES, 그렇지 않을 경우 NO를 출력한다.


부분문제

번호 점수 조건
#150점

S의 길이가 10 이하이다.

#250점

S의 길이가 1,000,000 이하이다.


예제

3

211
311
3321
NO

YES
YES

출처

eva

로그인해야 코드를 작성할 수 있어요.