結果
| 問題 |
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())
}