텍사스 홀덤은 조커를 뺀 표준 52장 카드로 하는 포커 게임이다. 카드는 무늬 4종류(스페이드, 하트, 다이아몬드, 클로버)와 끗수 13종류(A, K, Q, J, 그리고 10부터 2까지)로 이루어진다.
베팅을 빼고 보면 한 판은 다음처럼 진행된다.
먼저 각 참가자가 카드 두 장을 뒷면으로 받는다. 이 두 장을 홀 카드라 하고, 쇼다운 전까지 공개하지 않는다. 그다음 딜러가 카드 세 장을 앞면으로 깔아 모든 참가자가 함께 쓰는 커뮤니티 카드로 만든다. 이 세 장을 플롭이라 한다. 이어서 커뮤니티 카드가 한 장 더 깔리고(턴), 마지막으로 한 장이 더 깔린다(리버).
리버까지 나오면 쇼다운으로 넘어간다. 모든 참가자가 홀 카드를 공개하고, 자기 홀 카드 두 장과 커뮤니티 카드 다섯 장을 합친 일곱 장에서 다섯 장을 골라 핸드를 만든다. 가장 강한 핸드를 만든 참가자가 이긴다.
핸드는 열 종류가 있고, 강한 것부터 나열하면 다음과 같다.
연속을 따질 때 J, Q, K는 각각 11, 12, 13으로 본다. A는 K 바로 위로도 쓰고 2 바로 아래로도 쓸 수 있어서 A, K, Q, J, 10과 5, 4, 3, 2, A는 모두 연속이지만 3, 2, A, K, Q 같은 배열은 연속이 아니다.
같은 종류의 핸드가 둘 이상이면 카드 끗수를 비교해 순위를 가린다. 세트를 이루는 카드(페어, 트리플, 포 카드)를 먼저 비교하고, 그다음 남은 카드를 높은 끗수부터 하나씩 비교해 순위가 갈릴 때까지 이어간다. 종류별로 정리하면 다음과 같다.
끗수의 순서는 높은 쪽부터 A, K, Q, J, 10, 9, ..., 2이다. 다만 스트레이트에서 2 아래로 쓴 A는 2보다 낮다. 끝까지 비교해도 순위가 갈리지 않는 경우가 있다. 무늬는 순위를 가릴 때 전혀 쓰지 않는다.
비교 예를 몇 개 들면 다음과 같다. 설명을 위한 예일 뿐이라 텍사스 홀덤에서 실제로 나올 수 없는 조합도 섞여 있다.
이제 상대 한 명과 텍사스 홀덤을 한다고 하자. 홀 카드와 플롭은 이미 깔렸고, 당신은 상대의 홀 카드가 무엇인지 알고 있다. 하지만 턴과 리버가 무엇일지는 모른다.
아직 보이지 않은 45장에서 턴과 리버가 균등한 확률로 뽑힌다고 할 때, 당신이 이길 확률을 구하라. 당신과 상대는 항상 만들 수 있는 가장 강한 핸드를 만든다. 비기는 경우는 지는 것으로 센다.
입력은 여러 개의 데이터 집합으로 이루어진다. 데이터 집합 하나는 세 줄이다.
내카드1 내카드2
상대카드1 상대카드2
커뮤니티카드1 커뮤니티카드2 커뮤니티카드3
첫째 줄에는 당신의 홀 카드 두 장, 둘째 줄에는 상대의 홀 카드 두 장, 셋째 줄에는 플롭 세 장이 주어진다. 한 줄 안의 카드는 공백으로 구분한다.
카드 한 장은 문자 두 개로 적는다. 첫 문자는 무늬로 S(스페이드), H(하트), D(다이아몬드), C(클로버) 중 하나다. 둘째 문자는 끗수로 A, K, Q, J, T(10), 또는 9부터 2까지의 숫자 중 하나다. 한 데이터 집합의 카드 일곱 장은 모두 다르다.
# 한 글자만 있는 줄이 나오면 입력이 끝난다. 이 줄은 처리하지 않는다.
데이터 집합마다 당신이 이길 확률을 소수점 아래 10자리로 반올림해 한 줄에 출력한다. 정수 부분의 0과 끝자리 0을 모두 적어서, 확률이 0이면 0.0000000000, 1이면 1.0000000000으로 출력한다.
턴과 리버는 남은 45장에서 두 장을 고르는 (245)=990가지 중 하나이므로 확률은 항상 990분의 정수다. 따라서 10자리 반올림 결과는 하나로 정해진다.