結果
| 問題 | No.227 簡単ポーカー | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2015-07-25 05:25:17 | 
| 言語 | Go (1.23.4) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 2 ms / 5,000 ms | 
| コード長 | 863 bytes | 
| コンパイル時間 | 10,581 ms | 
| コンパイル使用メモリ | 222,404 KB | 
| 実行使用メモリ | 6,820 KB | 
| 最終ジャッジ日時 | 2024-10-10 19:24:00 | 
| 合計ジャッジ時間 | 11,274 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 14 | 
ソースコード
package main
import (
	"fmt"
)
const (
	N = 5
)
var (
	A []int
)
func maxHand(hand map[int]int, ignore int) (key, value int) {
	for k, v := range hand {
		if k == ignore {
			continue
		}
		if value < v {
			key = k
			value = v
		}
	}
	return
}
func resolve() string {
	hand := make(map[int]int)
	for i := 0; i < N; i++ {
		hand[A[i]] += 1
	}
	firstKey, firstValue := maxHand(hand, -1)
	switch firstValue {
	case 3:
		if _, secondValue := maxHand(hand, firstKey); secondValue == 2 {
			return "FULL HOUSE"
		} else {
			return "THREE CARD"
		}
	case 2:
		if _, secondValue := maxHand(hand, firstKey); secondValue == 2 {
			return "TWO PAIR"
		} else {
			return "ONE PAIR"
		}
	default:
		return "NO HAND"
	}
	return "!!!"
}
func main() {
	A = make([]int, N)
	for i := 0; i < N; i++ {
		fmt.Scanf("%d", &A[i])
	}
	fmt.Scanf("\n")
	fmt.Println(resolve())
}
            
            
            
        