크래프톤 정글/정글에서 문제풀기

[정글 알고리즘]-[하]-백준 1157 단어 공부

cedis 2026. 3. 12. 14:17

📌 문제 요약

알파벳으로 이루어진 단어에서 가장 많이 사용된 알파벳을 대문자로 출력하라.
단, 최다 빈도 알파벳이 여러 개이면 ?를 출력한다.

💡 핵심 아이디어

① 대문자로 통일 (.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+은 삽입 순서 유지지만 최대값 판단엔 무관