[Bronze II] 가장 많은 글자 - 1371
1371번: 가장 많은 글자
첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이
www.acmicpc.net
성능 요약
메모리: 14216 KB, 시간: 120 ms
분류
구현(implementation), 문자열(string)
문제 설명
영어에서는 어떤 글자가 다른 글자보다 많이 쓰인다. 예를 들어, 긴 글에서 약 12.31% 글자는 e이다.
어떤 글이 주어졌을 때, 가장 많이 나온 글자를 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이상 있다.
출력
첫째 줄에 가장 많이 나온 문자를 출력한다. 여러 개일 경우에는 알파벳 순으로 앞서는 것부터 모두 공백없이 출력한다.
답 : 값이 null이 아닐 때 까지 반복문을 돌려 배열에 넣어주고,
max를 찾고, 그와 같은 경우 출력해준다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
int arr[] = new int[26];
while((str = br.readLine()) != null){
for(int i = 0; i < str.length(); i++){
if(str.charAt(i) >= 'a' && str.charAt(i) <= 'z'){
arr[str.charAt(i) - 'a']++;
}
}
}
int max = 0;
for(int i = 0; i < 26; i++){
max = Math.max(max, arr[i]);
}
for(int i = 0; i < 26; i++){
if(arr[i] == max){
System.out.print((char)('a' + i));
}
}
}
}
'algorithm > 백준' 카테고리의 다른 글
[백준] 뉴비의 기준은 뭘까? - 19944 Java[자바] (0) | 2023.02.13 |
---|---|
[백준] 나머지 - 10430 Java[자바] (0) | 2023.02.12 |
[백준] 시그마 - 2355 Java[자바] (0) | 2023.02.10 |
[백준] 2018 연세대학교 프로그래밍 경진대회 - 15667 Java[자바] (0) | 2023.02.09 |
[백준] 10부제 - 10797 Java[자바] (0) | 2023.02.08 |