앨리스, 밥, 그리고 게임
시간 제한1초메모리 제한2048 MB
앨리스의 카드 26장이 주어질 때, 두 사람이 최선을 다하면 앨리스가 이기는지, 밥이 이기는지, 무승부인지 판정합니다.
문제
앨리스와 밥은 최근 복잡한 게임을 많이 했기 때문에, 머리를 식힐 겸 간단한 게임을 하고 싶어 한다.
카드 한 벌만으로 할 수 있는 "Seven"이라는 아주 간단한 게임을 두 사람이 떠올렸다. Seven의 전통적인 규칙은 다소 복잡하므로, 앨리스와 밥은 단순화한 버전으로 게임을 하기로 했다.
이 게임에 쓰이는 카드는 스페이드, 하트, 클럽, 다이아몬드 네 가지 무늬로 이루어져 있다. 각 무늬에는 1부터 13까지 숫자마다 카드가 한 장씩 있어, 모두 52장이다.
단순화한 게임의 규칙은 다음과 같다.
- 먼저 52장의 카드를 26장씩 똑같이 나누어, 앨리스와 밥이 각자 한 묶음씩 가진다.
- 스페이드 7을 가진 플레이어가 스페이드 7을 테이블 위에 놓는다.
- 그다음 상대 플레이어부터 번갈아 가며 카드를 낸다. 매 차례 플레이어는 손패에서 카드 한 장을 골라 테이블에 놓아야 한다. 낼 수 있는 카드는 다음 두 조건 중 하나를 만족해야 한다.
- 카드의 숫자가 7이다.
- 테이블에 놓인 카드 중 낼 카드와 같은 무늬이면서 숫자가 정확히 1만큼 차이 나는 카드가 있다.
- 두 플레이어가 모든 카드를 다 냈다면 무승부다. 그렇지 않은 경우, 차례인 플레이어가 규칙에 따라 카드를 낼 수 없으면 그 플레이어가 지고 상대가 이긴다.
플레이어들은 흔히 서로 다른 무늬의 7을 세로로 맞춰 놓고, 7의 양쪽으로 수열을 이어 붙여 같은 무늬의 카드를 한 줄로 배열한다. 무늬마다 수열은 서로 독립적이다.
앨리스와 밥이 모두 최적으로 플레이한다고 할 때, 두 사람의 초기 손패가 주어지면 게임의 결과를 구하라.
입력
입력에는 앨리스의 카드만 주어진다. 한 플레이어의 손패로 상대의 손패를 추론할 수 있기 때문이다.
입력은 한 줄이며, 공백으로 구분된 26개의 문자열로 이루어진다. 각 문자열은 앨리스 손패의 카드 한 장을 나타낸다. 카드는 모두 서로 다르고, 어떤 순서로 주어져도 된다.
각 카드는 무늬 문자와 숫자로 표현한다. 무늬 문자는 스페이드 S, 하트 H, 클럽 C, 다이아몬드 D이다. 숫자는 1 이상 13 이하이며, 한 자리 또는 두 자리 수이고 앞에 0을 붙이지 않는다. 예를 들어 스페이드 7은 S7로 쓴다.
출력
두 플레이어가 최적으로 플레이할 때의 게임 결과를 한 줄로 출력한다. 앨리스가 이기면 Alice, 밥이 이기면 Bob, 무승부이면 Draw를 출력한다.