名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

No.227 簡単ポーカー

回答

#43835 No.227 簡単ポーカー - yukicoder

手札が与えられるので,役を答える問題.
mapを使ってカードをまとめてあげると楽かと思います.
ッて思いましたが,これトランプで与えられる配列の長さも限られるので,リストで処理してもあまり変わらないかも….

役のフラグ立てですが,2ペアがいくつあるか,3ペアがいくつあるか数えてあげます.
これをうまくやると,下のように配列にまとめておいた答えにうまくアクセスすることができます.

これ最初if文とか使っていたのですが,最後うまくまとめられて良かったです….

dic = dict([])
for i in map(int, input().split()):
    if i in dic:
        dic[i] += 1
    else:
        dic.update({i:1})

twop, threec = 0, 0
for v in dic.values():
    if v == 2:
        twop += 1
    if v == 3:
        threec += 1

ans = ["NO HAND", "ONE PAIR", "TWO PAIR", "THREE CARD", "FULL HOUSE"]
print(ans[twop + threec * 3])