브리지 카드 정리

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

브리지는 표준 52장 카드를 4명에게 13장씩 나눠 주고 진행하는 카드 게임입니다. 대부분의 사람은 받은 패를 먼저 무늬(suit)별로, 같은 무늬 안에서는 숫자(rank)별로 정렬해서 봅니다.

무늬에는 정해진 우열이 없지만, 색을 번갈아 놓는 것이 보기 편하므로 다음 순서를 사용합니다.

$\clubsuit$ (C) < $\diamondsuit$ (D) < $\spadesuit$ (S) < $\heartsuit$ (H)

대부분의 문자 집합은 무늬 기호를 표시하지 못하므로, 무늬는 C(클럽), D(다이아몬드), S(스페이드), H(하트)의 알파벳으로 나타냅니다.

같은 무늬 안에서는 에이스가 가장 높으므로 숫자 순서는 다음과 같습니다.

$$2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < T < J < Q < K < A$$

네 명의 플레이어는 나침반 방향에 앉아 각각 북(North), 남(South), 동(East), 서(West)라고 부릅니다. 한 명이 딜러가 되어 자기 왼쪽 사람부터 시작해 시계 방향으로 한 장씩 나눠 주고, 마지막 카드는 자기 자신에게 줍니다. 자리의 시계 방향 순서는 North → East → South → West 입니다.

카드 한 벌을 입력받아 나눠 주고, 네 사람의 패를 각각 정렬하여 아래에서 설명하는 형식으로 출력하는 프로그램을 작성하세요.

입력

입력은 여러 개의 딜(deal)로 이루어집니다. 각 딜은 세 줄로 주어집니다.

  • 첫 줄에는 딜러를 나타내는 한 글자 N, E, S, W 중 하나가 있습니다.
  • 다음 두 줄에는 카드 한 벌 52장이 나눠 줄 순서대로 적혀 있습니다(가장 먼저 적힌 카드를 가장 먼저 나눠 줍니다). 각 줄에는 26장이 들어 있고, 카드 한 장은 두 글자로 표기합니다. 앞 글자는 무늬(C, D, S, H), 뒤 글자는 숫자(29, T, J, Q, K, A)입니다.

입력의 끝은 # 한 글자만 있는 줄로 표시됩니다.

출력

각 딜마다 정렬된 네 사람의 패를 24줄로 출력합니다. 출력 순서는 South, West, North, East 입니다. 연속된 딜 사이에는 빈 줄 하나를 넣어 구분합니다.

각 사람의 패는 여섯 줄로 출력합니다.

  1. <이름> player: 형태의 머리글 줄. <이름>South, West, North, East 중 하나입니다.
  2. 13개의 칸으로 이루어진 위쪽 테두리. + 뒤에 ---+를 13번 이어 붙인 +---+ ... 모양입니다.
  3. 각 카드의 숫자를 두 번 보여 주는 줄. 카드마다 |R R(숫자, 공백, 숫자) 칸을 두고 마지막에 |로 끝냅니다.
  4. 각 카드의 무늬를 보여 주는 줄. 카드마다 | S (공백, 무늬, 공백) 칸을 두고 마지막에 |로 끝냅니다.
  5. 3번과 같은 숫자 줄.
  6. 2번과 같은 테두리 줄.

한 사람의 카드 13장은 정렬된 순서(무늬, 그다음 숫자)대로 왼쪽에서 오른쪽으로 출력합니다.