만드는 중입니다

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

마작 텐파이

면접 대비

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

요약
13장의 마작 패가 텐파이인지 확인하고, 이 패를 완성하는 모든 패 종류를 사전순으로 출력합니다.
난이도

보통10점 중 5점

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

문제

문제에서의 마작은 실제 마작과 다를 수 있습니다.

마작은 중국에서 유래한 게임이다. 패를 가져오고 버리기를 반복해서 특정 형태를 만든다. 패는 수패와 자패 두 종류가 있다. 수패는 모양과 수로 구성된다. 수패의 모양은 삭, 통, 만 세 종류 중 하나이고, 수패의 수는 1부터 9까지 중 하나이다. 따라서 수패는 총 스물일곱 종류이다. 자패는 모양만으로 이루어지며, 모양은 동, 남, 서, 북, 백, 발, 중 일곱 종류 중 하나이다. 각 패는 4장씩 들어간다. 따라서 1삭부터 9삭, 1통부터 9통, 1만부터 9만까지 각 4장, 동, 남, 서, 북, 백, 발, 중 각 4장으로 총 136장의 패를 가지고 게임을 한다.

처음에는 136장 중 13장을 가지고 시작한다. 남은 패 중 하나를 가져왔을 때 가진 14장이 유효한 조합이면 "츠모" 선언을 하고 승리한다. 츠모를 선언하지 못하면 원하는 패를 버리고 새 패를 가져오기를 반복한다. 13장을 가지고 있을 때 한 장만 더 있으면 츠모를 선언할 수 있는 상태를 "텐파이"라고 한다.

유효한 조합의 14장은 머리 1개와 몸통 4개로 나뉜다. 머리는 같은 패 2장이다. 몸통은 3장으로 이루어지며 "슌쯔" 형태와 "커쯔" 형태가 있다. "슌쯔"는 연속된 수가 적힌 같은 모양의 수패 3장이다. 자패는 수가 없으므로 슌쯔를 만들 수 없다는 점에 유의하라. "커쯔"는 같은 패 3장이다.

특이한 형태의 유효한 조합으로 "치또이츠"와 "국사무쌍"이 있다. 치또이츠는 14장 중 머리가 7개인 경우이다. 이때 같은 패가 4장 있는 경우는 치또이츠로 인정하지 않는다. 국사무쌍은 1삭, 9삭, 1만, 9만, 1통, 9통, 동, 남, 서, 북, 백, 발, 중 13장을 모두 포함하고, 나머지 한 장은 이 13장 중 하나와 같은 패이다.

주어진 13장의 패가 텐파이 상태라면, 츠모를 완성하기 위한 마지막 한 장이 어떤 패가 될 수 있는지 구하라.

입력

13장의 패가 공백으로 구분되어 주어진다.

삭 패는 s, 통 패는 t, 만 패는 m으로 주어지며 수는 알파벳 앞에 붙는다. 동 패는 e, 남 패는 s, 서 패는 w, 북 패는 n, 백 패는 h, 발 패는 b, 중 패는 j로 주어진다.

출력

주어진 패가 텐파이 상태라면 첫 번째 줄에 tenpai를 출력한다. 두 번째 줄에는 츠모를 할 수 있는 마지막 한 장의 패가 몇 종류인지 정수 하나로 출력한다. 세 번째 줄에는 그 패의 종류를 사전순으로 정렬해 공백으로 구분하여 출력한다.

주어진 패가 텐파이 상태가 아니라면 첫 번째 줄에 no tenpai를 출력한다.

힌트

사전순의 정의는 다음과 같다.

두 문자열의 길이가 다르면, 짧은 문자열의 끝에 모든 문자보다 작다고 판별하는 특별한 문자를 길이가 같아질 때까지 추가한다. 길이가 같으면 첫 번째 문자부터 차례로 비교한다. 같은 문자이면 다음 문자로 넘어가고, 다른 문자에서 더 작은 문자를 가진 문자열이 사전순으로 앞선다.

예제4

  1. 예제 1

    입력
    1s 2s 3s 6s 7s 5t 6t 7t 7t 7t 7t 9m 9m
    
    예상 출력
    tenpai
    2
    5s 8s
    
  2. 예제 2

    입력
    w w s s n n h h b b j j 8s
    
    예상 출력
    tenpai
    1
    8s
    
  3. 예제 3

    입력
    1s 3s 5s 7s b b b j j j 7t 8t 9t
    
    예상 출력
    no tenpai
    
  4. 예제 4

    입력
    3s 3s 3s 3s 4s 4s 5s 5s 1t 2t 3t 3t 3t
    
    예상 출력
    tenpai
    2
    3t 6s