슬러피(Slurpy) 판별
면접 대비시간 제한1초메모리 제한128 MB
길이 60 이하의 문자열 최대 10개가 주어질 때, 각 문자열이 Slimp 뒤에 Slump가 오는 Slurpy인지 판정한다.
문제
제약 조건의 집합에 따라 문자열을 인식하는 것은 흔한 계산 문제입니다. Slurpy는 특정 성질을 만족하는 문자열입니다. 프로그램은 여러 문자열을 입력받아, 각 문자열이 Slurpy인지 아닌지를 출력합니다.
Slump은 다음 성질을 갖는 문자열입니다.
- 첫 문자가
D또는E입니다. - 첫 문자 뒤에 하나 이상의
F가 이어집니다. - 이
F들의 뒤에는 또 다른 Slump 또는G가 오며, 이것이 Slump을 끝맺습니다. 예를 들어DFFEFFFG는 Slump입니다.D로 시작하고F두 개가 이어진 뒤, SlumpEFFFG로 끝나기 때문입니다. - 그 밖의 문자열은 Slump이 아닙니다.
Slimp은 다음 성질을 갖는 문자열입니다.
- 첫 문자가
A입니다. - 길이가 2인 Slimp라면, 두 번째이자 마지막 문자가
H입니다. - 길이가 2가 아니라면, 다음 두 형태 중 하나입니다.
A다음에B, 그다음에 Slimp, 그다음에C.A다음에 Slump(위 정의 참고), 그다음에C.
- 그 밖의 문자열은 Slimp이 아닙니다.
Slurpy는 Slimp 뒤에 Slump이 이어진 문자열입니다.
예시
- Slump:
DFG,EFG,DFFFFFG,DFDFDFDFG,DFEFFFFFG - Slump이 아님:
DFEFF,EFAHG,DEFG,DG,EFFFFDG - Slimp:
AH,ABAHC,ABABAHCC,ADFGC,ADFFFFGC,ABAEFGCC,ADFDFGC - Slimp이 아님:
ABC,ABAH,DFGC,ABABAHC,SLIMP,ADGC - Slurpy:
AHDFG,ADFGCDFFFFFG,ABAEFGCCDFEFFFFFG - Slurpy가 아님:
AHDFGA,DFGAH,ABABCC
입력
첫째 줄에 문자열의 개수 ()이 주어집니다. 다음 개의 줄에는 각각 1자 이상 60자 이하의 알파벳 문자열이 주어집니다.
출력
각 입력 문자열에 대해, 그 문자열이 Slurpy이면 YES, 아니면 NO를 한 줄에 하나씩 출력합니다.