백준 복호화 - 9046

류희수·2024년 12월 20일

코딩 테스트

목록 보기
2/5

티어 : 브론즈2

중복 체크를 하는 과정에서 cnt를 사용하는 것을 생각하지 못하여 동일하면 ? 가 아니라 빠른 순으로 나오게 되어서 조금 애먹었었다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

        int size = Integer.parseInt(bufferedReader.readLine()); // 1 ~ 20

        while (size-- > 0) {
            String alpa = bufferedReader.readLine();
            int[] result = new int[26]; // 알파벳 개수

            for (int i = 0; i < alpa.length(); i++) {
                if (alpa.charAt(i) >= 'a' && alpa.charAt(i) <= 'z') {
                    result[alpa.charAt(i) - 'a']++; // 알파벳 크기에 저장 ex) b - a = 1
                }
            }

            int max = 0; // 일단 제일 많이 나온게 몇번?
            for (int r : result) {
                if (r > max) {
                    max = r;
                }
            }

            int cnt = 0;
            int answer = 0;

            for (int k = 0; k < 26; k++) {
                if (result[k] == max) {
                    cnt++; // 중복 체크 동일한게 2개면 ? 나오게
                    answer = k;
                }
            }

            System.out.println(cnt == 1 ? (char) (answer + 'a') : "?");
        }
    }
}
profile
자바를자바

0개의 댓글