📌 문제 요약
알파벳으로 이루어진 단어에서 가장 많이 사용된 알파벳을 대문자로 출력하라.
단, 최다 빈도 알파벳이 여러 개이면 ?를 출력한다.
💡 핵심 아이디어
① 대문자로 통일 (.upper()) ② 딕셔너리로 빈도수 집계 ③ 최댓값 알파벳이 1개인지 확인
대소문자 구분 없이 세야 하므로 입력을 먼저 .upper() 처리
🐍 코드 분석
word = input().upper() # 대문자 통일
count = {}
for ch in word:
count[ch] = count.get(ch, 0) + 1 # 빈도수 집계
max_cnt = max(count.values()) # 최대 빈도수
# 최대 빈도 알파벳 목록
candidates = [k for k, v in count.items() if v == max_cnt]
if len(candidates) > 1:
print("?")
else:
print(candidates[0])
⚠️ 자주 하는 실수
| 실수 | 설명 |
|---|---|
| upper() 미사용 | a와 A를 다른 문자로 세어 오답 |
| 최다 빈도 유일성 체크 누락 | 공동 1위가 있을 때 ?를 출력해야 함 |
| 딕셔너리 순서 의존 | Python 3.7+은 삽입 순서 유지지만 최대값 판단엔 무관 |
'크래프톤 정글 > 정글에서 문제풀기' 카테고리의 다른 글
| [정글 베이직 12] — 분할 정복 · 최댓값 찾기 (0) | 2026.03.13 |
|---|---|
| [정글 베이직 11] — 이분 탐색 (Binary Search) (0) | 2026.03.13 |
| [정글 알고리즘]-[하]-2675 문자열 반복 (0) | 2026.03.12 |
| [정글 알고리즘]-[하]-백준4344 평균은 넘겠지 (0) | 2026.03.12 |
| [정글 알고리즘]-[하]-백준17478 재귀함수가 뭔가요? (0) | 2026.03.12 |