반응형
단어 공부
문자열에서 가장 많이 등장한 알파벳을 찾는 문제입니다. 대소문자는 구분하지 않으며, 가장 많이 등장한 알파벳이 여러 개일 경우 '?'를 출력합니다.
예제 설명
- 주어진 문자열에서 각 알파벳의 개수를 구합니다.
- 그 중 최댓값을 구합니다.
- 가장 많이 등장한 알파벳이 여러 개인 경우 '?'를 출력합니다.
제한
- 시간 제한: 2초
- 메모리 제한: 128MB
- 제출: 281485
- 정답: 112240
- 맞힌 사람: 88612
- 정답 비율: 39.697%
코드 설명
public class StudyVocabulary {
// 문자열에서 각 알파벳의 개수를 계산하는 메소드
public static int[] getAlphabetCount(String str) {
int[] count = new int[26]; // 알파벳 A-Z까지의 개수를 저장할 배열
for (int i = 0; i < str.length(); i++) {
count[str.charAt(i) - 'A']++;
}
return count; // 완성된 알파벳 개수 배열을 반환
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // 입력을 받기 위한 Scanner 객체 생성
String input = sc.next().toUpperCase(); // 사용자로부터 문자열 입력 받음
int[] count = getAlphabetCount(input); // 입력받은 문자열에서 알파벳의 개수를 계산
int maxCount = -1; // 가장 많이 등장한 알파벳의 개수를 저장할 변수, 초기값은 -1로 설정
char maxAlphabet = '?'; // 가장 많이 등장한 알파벳을 저장할 변수, 초기값은 '?'
for (int i = 0; i < 26; i++) {
if (count[i] > maxCount) { // 현재 알파벳의 개수가 이전 최대값보다 클 경우
maxCount = count[i]; // 최대 개수 업데이트
maxAlphabet = (char) ('A' + i); // 최대 개수를 가진 알파벳 업데이트
} else if (count[i] == maxCount) { // 현재 알파벳의 개수가 최대값과 같은 경우
maxAlphabet = '?'; // 최대값을 가진 알파벳이 여러 개임을 나타냄
}
}
System.out.println(maxAlphabet); // 가장 많이 등장한 알파벳 출력
}
}
반응형
'알고리즘 > 문자열' 카테고리의 다른 글
[백준] 소금 폭탄 (0) | 2024.03.19 |
---|---|
[백준] 문서검색 (0) | 2024.03.19 |
[백준] 애너그램 (1) | 2024.03.19 |
[백준] 대소문자 바꾸기 (1) | 2024.03.19 |