만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

세트가 핵심이다

시간 제한2초메모리 제한512 MB

요약
12장의 카드로 이루어진 각 배열에서 네 가지 속성이 모두 같거나 모두 다른 카드 세 장을 모두 찾아 출력합니다.
난이도

쉬움10점 중 2점

유형
완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

Set 게임은 81장의 카드로 진행한다. 각 카드는 다음 네 가지 특성을 가진다.

  • 기호: 다이아몬드(Diamonds), 타원(Ovals), 물결(Squiggles) 중 하나
  • 개수: 1, 2, 3 중 하나
  • 색: 빨강(Red), 초록(Green), 보라(Purple) 중 하나
  • 음영: 빈 테두리(Outlined), 채움(Filled), 줄무늬(Striped) 중 하나

카드를 섞은 뒤 카드 12장을 배치한다. 플레이어들은 배치된 카드에서 세트를 가장 먼저 찾아내는 것을 목표로 한다. 세트가 찾아지면 그 카드들을 치우고 새 카드를 같은 자리에 놓는다. 모든 카드를 사용할 때까지 이 과정을 반복한다. 세트를 가장 많이 찾은 플레이어가 이긴다.

세 장의 카드는 모든 특성에서 값이 모두 같거나 모두 다르면 세트를 이룬다.

예를 들어 아래 세 카드는 세트를 이룬다.

특성을 차례로 살펴보자. 첫 카드는 물결, 둘째 카드는 다이아몬드, 셋째 카드는 타원이라 기호가 모두 다르다. 세 카드 모두 기호가 3개로 개수가 같다. 색은 빨강, 초록, 보라로 모두 다르다. 음영은 채움, 줄무늬, 빈 테두리로 모두 다르다. 모든 특성이 세 카드에서 같거나 모두 다르므로 세트다.

다음 세 카드는 세트가 아니다.

기호와 개수는 모두 다르고, 색은 세 장 모두 같다. 그런데 음영을 보면 두 장은 채움이고 한 장은 줄무늬다. 음영이 모두 같지도 모두 다르지도 않으므로 세트가 아니다.

입력

입력은 여러 개의 배치로 주어진다. 배치의 각 카드는 한 줄에 한 장씩 적히고, 배치와 배치 사이에는 빈 줄이 하나 있다. 입력의 끝은 파일의 끝으로 표시된다. 마지막 배치 뒤에는 빈 줄이 없다.

각 카드는 한 줄에서 연속된 4개의 문자로 주어진다. 첫 문자는 기호로, D(다이아몬드), O(타원), S(물결) 중 하나다. 둘째 문자는 개수로, 1, 2, 3 중 하나다. 셋째 문자는 색으로, R(빨강), G(초록), P(보라) 중 하나다. 넷째 문자는 음영으로, O(빈 테두리), F(채움), S(줄무늬) 중 하나다. 모든 문자는 대문자다.

출력

배치마다 그 배치의 카드로 만들 수 있는 세트를 모두 나열한다. 한 카드가 여러 세트에 속할 수 있다.

예제1

  1. 예제 1

    입력
    S1PS
    D3PO
    S2GF
    O2GS
    O2GF
    O3PO
    S2RF
    S3GS
    D2GS
    O1GS
    O1GF
    S2PS
    
    O2GF
    O1PF
    D2PO
    D3RO
    S2PO
    O1GF
    O1GS
    D2GO
    S3PF
    S2GF
    D2GS
    S1RS
    
    예상 출력
    CARDS:  S1PS D3PO S2GF O2GS O2GF O3PO S2RF S3GS D2GS O1GS O1GF S2PS
    SETS:   1.  D3PO S2RF O1GS
            2.  S3GS D2GS O1GS
    
    CARDS:  O2GF O1PF D2PO D3RO S2PO O1GF O1GS D2GO S3PF S2GF D2GS S1RS
    SETS:   *** None Found ***