[백준] 1157 단어 공부 - Java

Yunki Kim·2022년 11월 23일
0

백준

목록 보기
15/104
post-thumbnail

문제


링크


코드

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));

        int[] alphabets = new int[26];
        String input = (br.readLine()).toUpperCase();

        for (int i = 0; i < input.length(); i++) {
            if (input.charAt(i) >= 'A' && input.charAt(i) <= 'Z') {
                alphabets[input.charAt(i) - 'A']++;
            }
        }

        int max = 0;
        char alphabet = '?';
        for (int i = 0; i < alphabets.length; i++) {
            if (alphabets[i] > max) {
                max = alphabets[i];
                alphabet = (char) (i + 65);
            } else if (alphabets[i] == max) {
                alphabet = '?';
            }
        }
        System.out.println(alphabet);
    }
}

리뷰

예전에 풀어둔 문제를 포스팅을 안해서 포스팅할겸 다시 풀어보았다.
이전에는 Scanner를 이용해 풀었는데 지금보니 확실히 BufferedReader와 속도 차이가 난다.

풀이방식은 대소문자 구분을 하지 않으니까 대문자로 통일하여 알파벳과 같은 수를 가진 배열에 알파벳에 해당하는 자리에 갯수를 추가하여 배열을 돌며 가장 높은 수를 찾아 출력하는 방식이다.

0개의 댓글