ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [KOITP] 집합 판별(Not Solved)
    자료구조 및 알고리즘/문제풀이 2017. 1. 19. 07:43


    시간 제한메모리 제한제출 횟수정답 횟수 (비율)정답자 수
    2.0 초512 MB35265 (18%)55

    문제

    민규는 어떤 문자열이 주어졌을 때, 그것이 집합인지 판단하는 것은 매우 쉬운 일이라고 주장하고 있다.

    당신은 민규의 콧대를 납작하게 만들어 주기 위해, 다음과 같이 집합(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이라 해석할 수 있다.

    { { "}" }, "{", "}" }

    { { "}" }, "{", "}" }

    { { "}" }, { "," } }

    { { "}" }, { "," } }


    댓글

Designed by Tistory.