문제는 엄청 간단하다.
문장에서 가장 많이 사용되는 글자를 출력하는 문제이다.
나는 입력받을 받을 때, Scanner 클래스의 hasNextLine()을 사용했는데, 로컬에서 테스트를 하면 EOF를 잡아주지 못해서 그냥 뇌버깅(?)으로 풀었지만, 백준에서는 EOF를 잡아주어서 다행히 맞출 수 있었다.
오랜만에 EOF가 나와서 개념을 다시 잡고 가야겠다.
In computing, end-of-file (commonly abbreviated EOF[1]) is a condition in a computer operating system where no more data can be read from a data source
문제 해결방법은,
1. 한 줄을 입력받는다 ex) baekjoon online judge
2. " "을 기준으로 split한다.
3. 아스키코드를 사용해서 각 문자의 빈도수를 체크하고, 최빈값을 구한다.
4. 빈도수가 체크된 배열을 돌면서, 최빈값과 같은 경우 다시 문자로 만들어 준다.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str;
int[] check = new int[26];
int max = 0;
int index;
while (sc.hasNextLine()) {
str = sc.nextLine();
String[] arr = str.split(" ");
for (int j = 0; j < arr.length; j++) {
String s = arr[j];
for (int i = 0; i < s.length(); i++) {
index = s.charAt(i) - 'a';
check[index]++;
if (check[index] > max) {
max = check[index];
}
}
}
}
for (int k = 0; k < 26; k++) {
if (check[k] == max) {
System.out.print((char) ('a' + k));
}
}
}
}
'알고리즘 문제' 카테고리의 다른 글
카카오 코딩테스트 - 후보키 (0) | 2019.08.28 |
---|---|
카카오 코딩테스트 - 오픈 채팅방 (0) | 2019.08.24 |
[알고리즘 문제] 백준9933 - 민균이의 비밀번호 (0) | 2019.08.23 |
[알고리즘 문제] 백준11559 - Puyo Puyo (0) | 2019.08.21 |
[알고리즘 문제] 백준1911 - 흙길 보수하기 (0) | 2019.08.20 |