민규는 어떤 문자열이 주어졌을 때, 그것이 집합인지 판단하는 것은 매우 쉬운 일이라고 주장하고 있다.
당신은 민규의 콧대를 납작하게 만들어 주기 위해, 다음과 같이 집합(Set)을 정의했다. <empty>는 집합이 비어 있을 수 있다는 것을 의미한다.
이렇게 집합을 정의하면 집합의 원소를 이루는 문자열이 모호해지기 때문에, 집합인지 판단하는 것이 어려운 문제가 된다.
Set::= Set ::= "{" Elementlist "}" Elementlist ::= | List List ::= Element | Element "," List Element ::= Atom | Set Atom ::= "{" | "}" | ","
당신은 민규가 이 문제에 쩔쩔매는 것을 보고 기뻐하고 있다가 문득 민규의 답이 맞는지 틀린지 채점해야 한다는 것을 깨달았다. 민규의 답변을 채점하기 위해 어떤 문자열이 집합인지 아닌지 판단하는 프로그램을 작성하자.
입력의 첫 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스의 개수는 1500 이하이다.
그 다음 각 줄에 "{", "}", ","로 이루어진 문자열이 주어진다. 각 문자열의 길이는 1 이상 200 이하이다.
각 줄에 문자열이 Set인지 아닌지를 출력한다. 문자열이 Set이라고 판단될 수 있는 방법이 하나라도 있는 경우, 문자열은 Set이다. 자세한 출력 양식은 예제를 참고하라.
4 {} {{}} {{}},{,}} {,,}
Word #1: Set Word #2: Set Word #3: Set Word #4: No Set
3번째 에시는 다음과 같은 방법으로 Set이라 해석할 수 있다.
{ { "}" }, "{", "}" }
{ { "}" }, { "," } }
댓글
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.