結果
| 問題 | No.24 数当てゲーム |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-03-10 11:38:43 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 5,000 ms |
| コード長 | 1,459 bytes |
| コンパイル時間 | 14,277 ms |
| コンパイル使用メモリ | 222,780 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-13 04:51:51 |
| 合計ジャッジ時間 | 13,434 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 |
ソースコード
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
// エントリポイント
func main() {
in := bufio.NewScanner(os.Stdin)
in.Scan()
input1 := in.Text()
input2 := make([]string, 0)
for in.Scan() {
input2 = append(input2, in.Text())
}
fmt.Println(numbers(input1, input2))
}
// 思い浮かべた数を判定して返す
func numbers(line string, numList []string) string {
_ = line
// 0:初期値,1:NO,2:YES
result := [10]int{}
// 判定処理
for _, v := range numList {
sp := strings.Split(v, " ")
strAry := sp[0:len(sp)-1]
yesNo := sp[len(sp)-1]
// strAryを数値に変換
numAry := make([]int, 0)
for _, v2 := range strAry {
i, _ := strconv.Atoi(v2)
numAry = append(numAry, i)
}
if yesNo == "NO" {
for _, v2 := range numAry {
result[v2] = 1
}
}
if yesNo == "YES" {
// numAry にないものはすべて1
for i3, v3 := range result {
if v3 == 0 || v3 == 2 {
if existAry(numAry, i3) {
result[i3] = 2
} else {
result[i3] = 1
}
}
}
}
}
// 結果を探す
for i3, v3 := range result {
if v3 == 2 {
return strconv.Itoa(i3)
}
}
for i4, v4 := range result {
if v4 == 0 {
return strconv.Itoa(i4)
}
}
// ここには来ないはず
return ""
}
// 配列内に値があるか判定する。
func existAry(intAry []int, i int) bool {
for _, v := range intAry {
if v == i {
return true
}
}
return false
}