https://www.acmicpc.net/problem/1157
1. 아이디어
배열에 알파벳이 등장한 횟수를 저장하면 간단하게 해결할 수 있다.
2. 문제풀이
입력의 문자열의 각 문자를 소문자로 변경 후 알파벳의 개수를 세는 배열에 저장을 해줬다.
이후 배열을 순회하며 가장 큰 개수와 가장 큰 개수가 등장한 횟수, 해당 알파벳을 갱신하며 저장해줬다.
3. 코드
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] input = br.readLine().toCharArray();
int[] cntArr = new int[26];
for (char c : input) {
cntArr[Character.toLowerCase(c) - 'a']++;
}
int max = 0;
int maxCnt = 0;
char maxChar = '?';
for (int i = 0; i < cntArr.length; i++) {
if (cntArr[i] > max) {
max = cntArr[i];
maxCnt = 1;
maxChar = (char) (i + 'A');
} else if (cntArr[i] == max) {
maxCnt++;
}
}
if (maxCnt == 1) System.out.println(maxChar);
else System.out.println("?");
}
}
4. 후기
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 2675번 - 문자열 반복 [Java] (0) | 2025.01.01 |
---|---|
[백준] 2587번 - 대표값2 [Java] (0) | 2025.01.01 |
[백준] 2864번 - 5와 6의 차이 [Java] (0) | 2025.01.01 |
[백준] 5522번 - 카드 게임 [Java] (0) | 2025.01.01 |
[백준] 28074번 - 모비스 [Java] (0) | 2025.01.01 |