JAVAアルゴリズム-クラス会場HashMap
7429 ワード
説明:
班長候補はA B C D E候補だ
投票用紙にはクラスの学生が自分で選んだ候補者の記号(アルファベット)が書かれていて、先生がその記号を発表しています.
先生の発言が終わったら、どの記号を印刷した候補者が班長になるプログラムを作成してください.
入力
1行目はクラス生徒数N(5<=N<=50)である.
2行目では、各候補者がN票に書いた記号が、あなたが発表した順序で文字列として入力されます.
しゅつりょく
クラス会長に選ばれた記号を出力します.
入力例
班長候補はA B C D E候補だ
投票用紙にはクラスの学生が自分で選んだ候補者の記号(アルファベット)が書かれていて、先生がその記号を発表しています.
先生の発言が終わったら、どの記号を印刷した候補者が班長になるプログラムを作成してください.
入力
1行目はクラス生徒数N(5<=N<=50)である.
2行目では、各候補者がN票に書いた記号が、あなたが発表した順序で文字列として入力されます.
しゅつりょく
クラス会長に選ばれた記号を出力します.
入力例
15
BACBACCACCBDEDE
サンプル出力C
正解
import java.util.*;
class Main {
public char solution(int n, String s){
char answer=' ';
HashMap<Character, Integer> map=new HashMap<>();
for(char x : s.toCharArray()){
map.put(x, map.getOrDefault(x, 0)+1);
}
//System.out.println(map.containsKey('F'));
//System.out.println(map.size());
//System.out.println(map.remove('C'));
int max=Integer.MIN_VALUE;
for(char key : map.keySet()){
//System.out.println(key+" "+map.get(key));
if(map.get(key)>max){
max=map.get(key);
answer=key;
}
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n=kb.nextInt();
String str=kb.next();
System.out.println(T.solution(n, str));
}
}
map.keySet()
:keySet()メソッドは、key値が必要な場合にのみ使用します.map.getOrDefault(x, 0)
:検索キーが存在する場合は、検索キーの値を返し、存在しない場合は、デフォルト値0
を返します.map.getOrDefault(x, 0)+1
は、mapの値において1から逆数を開始するために設計されている.Reference
この問題について(JAVAアルゴリズム-クラス会場HashMap), 我々は、より多くの情報をここで見つけました https://velog.io/@mooh2jj/JAVA-알고리즘-학급회장-HashMapテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol