문제1003--포커

1003: 포커

실행시간 제한: 1 Sec  메모리사용 제한: 128 MB  Special Judge
제출: 781  통과: 171
[제출] [채점기록] [묻고답하기]

문제 설명

포커에서 5장의 카드를 들고 있을 때, 가능한 패는 아래와 같이 10가지가 있다(강한 패에서 약한패 순):

  • royal flush - A, K, Q, J, 그리고 10으로 이루어져 있고, 같은 무늬
  • straight flush - 5장의 카드가 모양이 같고, 10, 9, 8, 7, 6과 같이 순서대로 들어왔을 때이다. A의 경우 가장 높은 패로도(K다음으로), 가장 낮은 패로도(2아래로) 사용 가능하다. 하지만 4,3,2,A,K와 같은 경우는 straight flush로 치지 않는다. 
  • four of a kind - 4개의 카드가 같은 숫자일 경우, (예: K가 4개가 있을 경우)
  • full house - 3개의 카드가 같은 숫자이고, 2개의 카드가 같은 숫자일 경우
  • flush - 5개의 카드가 같은 모양일 경우
  • straight - straight flush처럼 숫자가 순서대로 있으나, 모양이 섞여 있는 경우
  • three of a kind - 3개의 숫자가 같은 경우
  • two pairs - 2개의 숫자가 같고, 나머지 2개의 숫자가 같은 경우
  • pair - 2개의 숫자가 같은 경우
  • high card - 위의 경우에 속하지 않는 경우

가지고 있는 패가 입력되었을 때, 그 패가 어떤 패인지 알려주는 프로그램을 작성하라.

입력 설명

첫 번째 줄에는 test case의 개수가 입력된다(20개 이하).

각 테스트케이스는 1줄로 이루어 지며, 다섯 개의 카드에 대한 정보가 입력된다. 카드 한 장은 두 개의 문자로 이뤄 지는데, 첫 번째 문자는 카드의 숫자(A,K,Q,J,T,9,8,7,6,5,4,3,2 - 높은 숫자부터 낮은 숫자순, A의 경우 가장 높거나, 가장 낮을 수 있다)를 뜻하며, 두번째 문자는 카드의 모양(S,H,D,C - 스페이드, 하트, 다이아몬드, 클럽)을 뜻한다.

출력 설명

각 테스트케이스에 대해서 일치하는 패의 이름을 출력한다.

만약 겹치는 것이 있을 경우 높은 패를 출력한다.

입력 예시 Copy

3
AH KH QH TH JH
KH 5S 3C 5C 7D
QH QD 2S QC 2C

출력 예시 Copy

royal flush
pair
full house

출처/분류

SPOJ