민규는 어떤 문자열이 주어졌을 때, 그것이 집합인지 판단하는 것은 매우 쉬운 일이라고 주장하고 있다.
당신은 민규의 콧대를 납작하게 만들어 주기 위해, 다음과 같이 집합(Set)을 정의했다. <empty>는 집합이 비어 있을 수 있다는 것을 의미한다.
이렇게 집합을 정의하면 집합의 원소를 이루는 문자열이 모호해지기 때문에, 집합인지 판단하는 것이 어려운 문제가 된다.
Set::=
Set ::= "{" Elementlist "}"
Elementlist ::= | List
List ::= Element | Element "," List
Element ::= Atom | Set
Atom ::= "{" | "}" | ","
당신은 민규가 이 문제에 쩔쩔매는 것을 보고 기뻐하고 있다가 문득 민규의 답이 맞는지 틀린지 채점해야 한다는 것을 깨달았다. 민규의 답변을 채점하기 위해 어떤 문자열이 집합인지 아닌지 판단하는 프로그램을 작성하자.