伯准Baekjoon拍2966回-JAVA


https://www.acmicpc.net/problem/2966
質問する
尚根、昌英、ヒョンジンは歴史と伝統を持つSogang ACM-ICPCチームに入りたい.しかし、参加したい応募者はすべてC言語筆記試験に合格しなければならない.彼らはC言語が話せない.だから、筆記試験を全部撮りたいです.
相根はA B C A B C A B B B B C A B B B B B C『赤い字』と一緒に撮るべきだと思います.
しかし昌英はB A B C B A B B C B B B B B B B B Cこんな撮り方とは満点の近道だと思います.
最後にヒョンジンは尚根と昌英C C A B C A B C A B C B B B Bを嘲笑した.一緒に撮らないと通れない.
筆記試験の答えが正しければ、相根(サングン)、昌英(チャンヨン)、鉉辰(ヒョンジン)の中で一番多かった人が誰なのかを調べるプログラムを書く.
入力
1行目はペンの試験問題の個数Nを与える.(1 ≤ N ≤ 100)
2行目は試験の正解を出します.
しゅつりょく
1行目の正解が一番多い人は、何問正解したかを印刷します.
次の行は、最も多くの質問に答えた人のIDを出力します.尚根のIDはアリアン昌英のIDはブルーノヒョンジンのIDはゴラン複数のIDを出力する場合は、上根、昌英、ヒョンジンの順に出力し、行ごとに1つずつ出力する.
入力例1
5
BAACC
サンプル出力1
3
Bruno
入力例2
9
AAAABBBBB
サンプル出力2
4
Adrian
Bruno
Goran
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		Map<String, Map<String, Integer>> map = new HashMap<>();
		String name[] = { "Adrian", "Bruno", "Goran" };
		String pattern[] = { "ABC", "BABC", "CCAABB" };

		for (int i = 0; i < name.length; i++) {
			map.put(name[i], new HashMap<>());
			map.get(name[i]).put(pattern[i], 0);
		}

		int num = Integer.parseInt(br.readLine());
		String exam = br.readLine();
		for (int i = 0; i < num; i++) {
			for (int j = 0; j < name.length; j++) {
				if (exam.charAt(i % exam.length()) == pattern[j].charAt(i % pattern[j].length()))
					map.get(name[j]).put(pattern[j], (map.get(name[j]).get(pattern[j]) + 1));
			}
		}

		int sum = 0;
		String str = "";
		for (String key : map.keySet()) {
			int val2 = map.get(key).get((String) map.get(key).keySet().toArray()[0]);

			if (sum < val2) {
				sum = val2;
				str = key + "-";
			} else if (sum == val2)
				str += key + "-";
		}
		String[] strArr = str.split("-");
		Arrays.sort(strArr);

		System.out.println(sum);
		for (int i = 0; i < strArr.length; i++) {
			System.out.println(strArr[i]);
		}
	}
}
  • 説明
  • 時間ぶりの質問...早く簡単に作り直すべきではないでしょうか...経験は富だと思うので
  • をやり遂げました・・・元服のデザインが速くて洗練されています...瑕疵
  • MapにMapを入れた構造になっていて、あまり良い感じではありません...間違えたのか...?