結果

問題 No.24 数当てゲーム
ユーザー tsunabittsunabit
提出日時 2018-04-22 18:12:46
言語 Java21
(openjdk 21)
結果
AC  
実行時間 134 ms / 5,000 ms
コード長 3,099 bytes
コンパイル時間 3,589 ms
コンパイル使用メモリ 78,788 KB
実行使用メモリ 54,044 KB
最終ジャッジ日時 2024-06-27 05:42:30
合計ジャッジ時間 5,627 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 129 ms
53,964 KB
testcase_01 AC 129 ms
53,864 KB
testcase_02 AC 132 ms
53,880 KB
testcase_03 AC 134 ms
53,876 KB
testcase_04 AC 131 ms
53,984 KB
testcase_05 AC 134 ms
53,992 KB
testcase_06 AC 131 ms
54,032 KB
testcase_07 AC 129 ms
53,984 KB
testcase_08 AC 130 ms
54,044 KB
testcase_09 AC 131 ms
53,996 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.Scanner;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Arrays;
import java.util.Collections;

// ***問題文***
// 太郎君と二郎君はゲームをしています。
// まず最初に二郎君は 0から9までの数字を1つ、心の中で思い浮かべます。
// 太郎君は、重複しないような0から9までの数字から 4つ 二郎君に提示し、
// 二郎君は心の中で思い浮かべた数字が、提示された4つの数字の中にあれば YES 、
// 無ければ NO と答えます。
// これを1ターンとし、次のターンにまた太郎君は4つの数字を提示することを繰り返します。
// 前に出した数字と同じ数字を提示しても構いません。
// 入力に太郎君が提示した数字と、二郎君の答えが与えられるので、
// 二郎君が思い浮かべたであろう数字を出力してください。
// 必ず出力する数字が1つと確定できるような入力が与えられます。
// ***入力***
// N
// A1 B1 C1 D1 R1
// A2 B2 C2 D2 R2
// …
// AN BN CN DN RN
// 1行目に、ターン数を表すN (2≤N≤6) が与えられます。
// 続くN行に、太郎君が提示した4つの数字 Ai,Bi,Ci,Di (0≤Ai,Bi,Ci,Di≤9, 1≤i≤N) と
// 二郎君の答えの文字列 Ri (YES または NO) が半角スペース区切りで与えられます。
// (Ai,Bi,Ci,Diは互いに異なる)
// ***出力***
// 二郎君が思い浮かべたであろう数字を出力してください。
// 最後に改行してください。


public class No24 {
    public static void main(String[] args) {
        // 標準入力から読み込む際に、Scannerオブジェクトを使う。
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int A = 0;
        int B = 0;
        int C = 0;
        int D = 0;
        String R = "";

        // hashap key value
        HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();
        // hashmapの初期化
        for(int i = 0; i < 10; i++) {
            map.put(i, 0);
        }

        for(int i = 0; i < N; i++) {
            A = sc.nextInt();
            B = sc.nextInt();
            C = sc.nextInt();
            D = sc.nextInt();
            R = sc.next();
            if("YES".equals(R)) {
                map.put(A, map.get(A) + 1);
                map.put(B, map.get(B) + 1);
                map.put(C, map.get(C) + 1);
                map.put(D, map.get(D) + 1);
            }else {
                map.put(A, map.get(A) - 1);
                map.put(B, map.get(B) - 1);
                map.put(C, map.get(C) - 1);
                map.put(D, map.get(D) - 1);
            }
        }
        // for(int k: map.keySet()) {
        //     System.out.println("map" + k + " = " + map.get(k));
        // }
        int maxk = 0;
        int maxv = -10;
        for(int k: map.keySet()) {
            if(map.get(k) > maxv) {
                maxk = k;
                maxv = map.get(k);
            }
        }
        System.out.println(maxk);
    }
}
0