Project Euler にチャレンジ:Problem 54

← Problem 53  Problem 55 →

Problem 54[ポーカーの役問題(Poker hands)]

ポーカーというカードゲームは、5枚のカードの組み合わせで、次のように役の強さが決まります。 カードは、2,3,4,5,6,7,8,9,10,ジャック,クイーン,キング,エースの順に強い数字になります。
二人のプレイヤーが同じ役の場合、役を構成しているカードの中で、最も高い値のものが勝ちます。たとえば、8のペアは、5のペアよりも強いです(例1参照)。
しかし、同じ役で役が同じ強さのカードである場合、残ったカードで一番強いカードで勝敗が決まります(例4参照)。もしも一番強いカードが同じ場合は、次の強いカードで勝敗を決めていきます。
試合Player 1Player 2勝者
15H 5C 6S 7S KD
5のワンペア
2C 3S 8S 8D TD
8のワンペア
Player 2
25D 8C 9S JS AC
エースが一番強いカード
2C 5C 7D 8S QH
クイーンが一番強いカード
Player 1
32D 9C AS AH AC
エースのスリーカード
3D 6D 7D TD QD
ダイヤのフラッシュ
Player 2
44D 6S 9H QH QC
クイーンのワンペア
それ以外の一番強いカードは9
3D 6D 7H QD QS
クイーンのワンペア
それ以外の一番強いカードは7
Player 1
52H 2D 4C 4D 4S
3枚の4のフルハウス
3C 3D 3S 9S 9D
3枚の3のフルハウス
Player 1
poker.txt には、1000行の2人の手札が載っています。それぞれの行に10のカードが半角スペースによって区切られています。最初の5枚がPlayer1 , 後ろの5枚がPlayer2 になります。全ての手札はあっており(重複したカードが出てきたり、誤った値が記載されてたりはしません)、配布されたカードの順番はランダムで、必ず勝敗がつくようになっています。
Player1 は何勝するか。