728x90
📌문제 출처
백준 단계별 문제풀이 - 문자열
https://www.acmicpc.net/problem/1157
❓ 문제
📗 문제 설명
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
📗 입출력
- 입력
- 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
- 출력
- 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
- 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
❗ 풀이
- defulatdict 사용
📗 풀이 코드
from collections import defaultdict
con = defaultdict(int)
maxNum,ans = 0,'?'
for s in input().upper() :
con[s] += 1
if con[s] > maxNum :
ans = s
maxNum += 1
elif con[s] == maxNum :
ans = '?'
print(ans)
📗 코드 해설
- 입력받은 문자열을 모두 대문자로 변환 후 한 글자씩 확인
- 해당 글자를 key로 하는 value를 1씩 커지게 해주고
해당 value를 최다 출현 글자의 출현 회수와 비교한다. - 최다 출현 글자가 여러개가 있을 시 정답은 '?'로, 한 개라면 해당 글자를 출력한다.
'파이썬 문제풀이' 카테고리의 다른 글
[백준 파이썬] 2908 상수 (0) | 2023.09.14 |
---|---|
[백준 파이썬] 1152 단어의 개수 (0) | 2023.09.14 |
[백준 파이썬] 2675 문자열 반복 (0) | 2023.09.14 |
[백준 파이썬] 10809 알파벳 찾기 (0) | 2023.09.14 |
[백준 파이썬] 14940 쉬운 최단거리 (0) | 2023.09.14 |