[伯俊]BOJ 1157 JAVA
8728 ワード
boj 1157単語を勉強する
アルファベットの大文字と小文字の単語を指定した場合は、この単語で最も使用されるアルファベットが何であるかを決定するプログラムを作成します.ただし、大文字と小文字は区別されません.
最初の行には、アルファベットの大文字と小文字からなる単語が表示されます.与えられた単語の長さは10万を超えない.
最初の行は、この語で最も多く使われているアルファベットを大文字で出力します.しかし、最も使用頻度の高いアルファベットが複数存在する場合?出力します.
アスキーコードで配列インデックスにアクセス! (ASCII)を参照してください.
質問する
アルファベットの大文字と小文字の単語を指定した場合は、この単語で最も使用されるアルファベットが何であるかを決定するプログラムを作成します.ただし、大文字と小文字は区別されません.
入力
最初の行には、アルファベットの大文字と小文字からなる単語が表示されます.与えられた単語の長さは10万を超えない.
しゅつりょく
最初の行は、この語で最も多く使われているアルファベットを大文字で出力します.しかし、最も使用頻度の高いアルファベットが複数存在する場合?出力します.
サンプルI/O
ソースコード
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//A = 65, a = 97
int[] alpha = new int[26]; //alpha[0] => A, alpha[25] => Z
char[] str = br.readLine().toCharArray();
for (int i = 0; i < str.length; i++) { //소문자 -> 대문자
if ('a' <= str[i] && str[i] <= 'z') {
str[i] -= 32;
}
alpha[str[i] - 65]++;
}
int max = 0;
int idx = 0;
boolean flag = true;
for (int i = 0; i < 26; i++) {
if(max == alpha[i]){
flag = false;
continue;
}
if (alpha[i] > max) {
max = alpha[i];
idx = i;
flag = true;
}
}
if (!flag) System.out.println("?");
else System.out.println((char) (idx + 65));
}
}
Comment
Reference
この問題について([伯俊]BOJ 1157 JAVA), 我々は、より多くの情報をここで見つけました https://velog.io/@jinmin2216/백준BOJ1157-JAVAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol