마술 트릭

면접 대비

시간 제한1초메모리 제한128 MB

요약
보여준 순서대로 주어진 네 장의 카드에서 첫 카드의 무늬와 나머지 세 장의 순열을 이용해 숨겨진 다섯 번째 카드를 알아낸다.
난이도

쉬움10점 중 3점

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

문제

한 마술사가 새로운 카드 마술을 고안하여 권위 있는 마술사 학회에서 선보였고, 그 자리에서 "최고 마술상"을 받았다. 이 마술에는 마술사, 관객, 조수 세 사람이 필요하다.

관객은 표준 52장 카드 한 벌을 섞은 뒤 무작위로 5장을 뽑는다. 이 5장은 조수에게 건네지며, 마술사는 카드를 보지 못한다. 조수는 카드를 살펴본 뒤 다섯 장 중 네 장을 한 장씩 마술사에게 보여 준다. 네 장을 본 마술사는 숨겨진 다섯 번째 카드를 맞힌다.

이 마술이 성립하는 이유는, 어떤 5장이 주어져도 조수가 그중 4장을 골라 보여 주는 순서로 숨긴 카드를 부호화할 수 있기 때문이다. 부호화는 카드에 대한 고정된 전순서를 이용하며, 먼저 무늬로, 그다음 숫자로 정렬한다.

  • 무늬 순서: H<C<D<SH < C < D < S (하트, 클럽, 다이아몬드, 스페이드).
  • 숫자 순서: 1<2<⋯<9<T<J<Q<K1 < 2 < \dots < 9 < T < J < Q < K. 여기서 TT, JJ, QQ, KK는 각각 10, 잭, 퀸, 킹을 뜻한다. (에이스는 11로 표기한다.)

각 카드는 숫자 뒤에 무늬 문자를 붙인 두 글자로 나타낸다. 예를 들어 QH(하트 퀸), 1C(클럽 에이스)와 같다.

예를 들어 관객이 JD, 8S, 7H, 8C, QH를 뽑았다고 하자. 조수의 전략은 다음과 같다.

  • 다섯 장 중 두 번 이상 나타나는 무늬 ss를 찾는다(이 예에서는 하트). 두 번 이상 나타나는 무늬가 여러 개이면 무늬 순서가 가장 낮은 것을 고른다.
  • 무늬가 ss인 카드들 중에서, 순환 숫자 순서 1<2<⋯<T<J<Q<K<1<2<…1 < 2 < \dots < T < J < Q < K < 1 < 2 < \dots에서 같은 무늬의 다른 카드 yy보다 여섯 칸 이내로 앞선 카드 xx를 숨긴다. 한 무늬에는 숫자가 13개뿐이므로 이는 항상 가능하다(이 예에서는 QH를 숨긴다). 조건을 만족하는 카드 xx가 여러 개이면 숫자가 가장 작은 것을 고른다.
  • 먼저 yy를 마술사에게 보여 준다. 그러면 마술사는 숨긴 카드의 무늬를 알고, 그 숫자가 yy보다 여섯 칸 이내로 앞서 있음을 안다.
  • 남은 세 장으로 1부터 6까지의 정확한 간격을 부호화한다. 세 장을 z1<z2<z3z_1 < z_2 < z_3으로 정렬했을 때, 보여 주는 순서의 의미는 다음과 같다.
    • z1,z2,z3z_1, z_2, z_3은 1을 뜻한다
    • z1,z3,z2z_1, z_3, z_2는 2를 뜻한다
    • z2,z1,z3z_2, z_1, z_3은 3을 뜻한다
    • z2,z3,z1z_2, z_3, z_1은 4를 뜻한다
    • z3,z1,z2z_3, z_1, z_2는 5를 뜻한다
    • z3,z2,z1z_3, z_2, z_1은 6을 뜻한다

마술사는 이 수를 yy의 숫자에 더하여(킹 다음에는 다시 11로 순환) 숨긴 카드의 숫자를 얻는다. 숨긴 카드의 무늬는 yy와 같다.

조수가 보여 준 순서대로 네 장의 카드가 주어질 때(따라서 첫 번째 카드가 yy이다), 숨긴 카드를 알아내는 프로그램을 작성하라.

입력

첫째 줄에 테스트 케이스의 수 NN이 주어진다 (1≤N≤100001 \le N \le 10000). 이어지는 NN개의 줄에 각각 하나의 테스트 케이스가 주어지며, 조수가 보여 준 순서대로 네 장의 카드가 공백 하나로 구분되어 주어진다(따라서 첫 번째 카드가 yy이다).

출력

각 테스트 케이스마다 숨긴 카드를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    2
    7H 8S 8C JD
    TC 2D 1S 5H
    
    예상 출력
    QH
    1C