[白俊]1157単語を勉強-Java
7435 ワード
[伯俊]1157番の単語を解く
アルファベットの大文字と小文字の単語を指定した場合は、この単語で最も使用されるアルファベットが何であるかを決定するプログラムを作成します.ただし、大文字と小文字は区別されません.
最初の行には、アルファベットの大文字と小文字からなる単語が表示されます.与えられた単語の長さは10万を超えない.
最初の行は、この語で最も多く使われているアルファベットを大文字で出力します.しかし、最も使用頻度の高いアルファベットが複数存在する場合?出力します.
Mississipi
?
質問する
アルファベットの大文字と小文字の単語を指定した場合は、この単語で最も使用されるアルファベットが何であるかを決定するプログラムを作成します.ただし、大文字と小文字は区別されません.
入力
最初の行には、アルファベットの大文字と小文字からなる単語が表示されます.与えられた単語の長さは10万を超えない.
しゅつりょく
最初の行は、この語で最も多く使われているアルファベットを大文字で出力します.しかし、最も使用頻度の高いアルファベットが複数存在する場合?出力します.
入力例1
Mississipi
サンプル出力1
?
マイコード
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] checkCount = new int[26]; // 단어의 개수를 세기 위해 배열 선언
String str = scan.next().toUpperCase(); // 대문자로 통일
char[] cArr = str.toCharArray(); // char로 변환
for(char c : cArr) {
checkCount[c-'A']++; // 단어의 개수만큼 count
}
int max = 0; // 가장 개수가 많은 단어를 판별하기 위해 선언
int idx = -1; // 가장 개수가 많은 단어의 인덱스를 알아내기 위해 선언
for(int i = 0; i < checkCount.length; i++) {
if(max < checkCount[i]) {
max = checkCount[i];
idx = i;
} else if (max == checkCount[i]) {
idx = -1;
}
}
if(idx == -1) {
System.out.println('?');
} else {
System.out.println((char)(idx + 'A'));
}
}
}
Reference
この問題について([白俊]1157単語を勉強-Java), 我々は、より多くの情報をここで見つけました https://velog.io/@seobob/백준-1157번-단어-공부-Javaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol