Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
백준 1371번- '가장 많은 글자' (PYTHON 풀이) 본문
문제:

글을 입력받고 이 중 가장 많이 쓰인 알파벳을 출력하면 되는 문제이다. 만약 중복되는 것이 있다면 알파벳 순으로 앞서는 것을 공백없이 출력하면 된다.
풀이:
import sys
text = sys.stdin.read()
alpha = {}
result = []
for i in range(97, 123):
alpha[chr(i)] = 0
for j in text:
if j in alpha:
alpha[j] += 1
for key, value in alpha.items():
if value == max(alpha.values()):
result.append(key)
print(''.join(result))
필자는 처음에 input()으로 입력값을 받아서 틀렸었다. 일반적으로 input은 한줄씩 입력값을 받는 반면, 우리는 첫문장부터 끝까지 한번에 받아서 비교를 해야하기 때문에 sys 라이브러리 import 후, sys.stdin.read()를 사용했다.
그 다음 딕셔너리와 결과값을 저장할 리스트 한개를 선언한다. 이후 앞서 선언한 딕셔너리에 키, 값을 넣기 위해 반복문을 사용한다. 알파벳 비교가 필요함으로 아스키값인 숫자를 기준으로 for문을 활용해서 키를 만들고 모든 값을 0으로 초기화하였다.
그 후 입력값을 받은 text를 한자리씩 보면서 딕셔너리에 값을 1씩 더해준다. 이 과정을 반복하면 딕셔너리에는 각 소문자의 등장횟수에 맞게 값이 추가되어 있을 것이다.
마지막으로 가장 큰 value에 해당하는 키를 추출하기 위해 items()를 썼다. items는 딕셔너리의 키, 값을 뽑을 수 있기 때문에 위와 같이 for문을 돌려서, 가장 큰 값에 해당하는 값이라면 그 키를 result에 추가하도록 하였다 여기까지 돌면 result에는 가장 큰 값들의 키만 모여있을 것이다.
그 다음 마지막으로 출력 형식에 맞게 result를 뽑아서 출력하면 문제를 풀 수 있다!
'CODING 💻' 카테고리의 다른 글
| 백준 1453번- '피시방 알바' (PYTHON 풀이) (0) | 2026.01.27 |
|---|---|
| 백준 1292번- '쉽게 푸는 문제' (PYTHON 풀이) (0) | 2026.01.26 |
| 백준 10179번- '쿠폰' (PYTHON 풀이) (0) | 2026.01.24 |
| 백준 3058번- '짝수를 찾아라' (PYTHON 풀이) (1) | 2026.01.23 |
| 백준 14720번- '우유 축제' (PYTHON 풀이) (1) | 2026.01.22 |
