728x90
https://www.acmicpc.net/problem/1157
내가 처음 푼 풀이는
전부 대문자로 받은 후 리스트에
아스키코드를 이용해 A ~ Z 까지 탐색하며
[알파벳,사용횟수] 를 넣고
사용횟수에 따라 내림차순으로 정렬을 해서 문제를 풀었다.
이 풀이를 첫 번쨰 코드에 올린다.
set을 이용한 또 다른 풀이가 있다.
set을 이용하면 중복을 제거할 수 있어서 효율적으로 풀 수 있다.
내가 처음 푼 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import sys
input = sys.stdin.readline
voca = input().upper()
max_num = 0
alpha_list = []
for i in range(65, 91):
num = voca.count(chr(i))
alpha_list.append([chr(i), num])
# 횟수를 기준으로 내림차순 정렬
alpha_list = sorted(alpha_list, key=lambda x: -x[1])
if alpha_list[0][1] != alpha_list[1][1]:
print(alpha_list[0][0])
else:
print("?")
|
cs |
set을 이용한 더 효율적인 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import sys
input = sys.stdin.readline
voca = input().strip().upper()
uniq_voca = list(set(voca))
count_list = []
for u in uniq_voca:
cnt = voca.count(u)
count_list.append(cnt)
if count_list.count(max(count_list)) > 1:
print("?")
else:
max_idx = count_list.index(max(count_list))
print(uniq_voca[max_idx])
|
cs |
728x90
'PS > 백준' 카테고리의 다른 글
[백준 1316번 ] 그룹 단어 체커 (파이썬/python) (0) | 2021.06.14 |
---|---|
[백준 2941번 ] 크로아티아 알파벳 (파이썬/python) (0) | 2021.06.14 |
[백준 4673번 ] 셀프 넘버 (파이썬/python) (0) | 2021.06.14 |
[백준 4344번 ] 평균은 넘겠지 (파이썬/python) (0) | 2021.06.14 |
[백준 2493번 ] 탑 (파이썬/python) (0) | 2021.06.12 |