728x90
반응형
문제 링크
정답 코드는 아래와 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
def solve():
s = input()
s = s.upper()
hist = {}
for c in s:
if c in hist.keys():
hist[c] += 1
else:
hist[c] = 1
big = 0
for key in hist.keys():
big = max(big, hist[key])
cnt = 0
for key in hist.keys():
if hist[key] == big:
cnt += 1
rst = key
if cnt != 1:
print("?")
else:
print(rst)
solve()
|
cs |
저는 이 문제를 histogram(도수분포표)을 활용하여 풀었습니다.
먼저 대소문자를 구별하지 않고 마지막에 대문자로 출력한다고 하였기 때문에 입력은 모두 대문자로 변경하고,
각 (대)문자에 대해서 몇개씩 존재하는지 그 갯수를 hist 에 저장합니다.
출현빈도가 가장 높은 문자가 하나인지 여러 개인지 파악하기 위해서 일단 가장 큰 값(big)을 찾고,
그 값이 몇 번 등장(cnt)하는지 확인합니다.
728x90
big 값이 여러개 있다면, 가장 많이 등장하는 문자가 복수개라는 의미이므로 물음표를 출력하고,
그렇지 않다면 가장 많이 등장하는 문자(rst)를 출력합니다.
풀이는 아래 영상을 참고 바랍니다.
www.youtube.com/watch?v=STrU8WEyU_E
저작권 라이선스: CC BY (출처만 표시하면 자유롭게 이용 가능)
728x90
반응형
'백준(BOJ) 문제 풀이' 카테고리의 다른 글
백준 1298번 문제(노트북의 주인을 찾아서) 파이썬(Python) 풀이 [로밍맨] (3) | 2021.07.02 |
---|---|
백준 1181번 문제(단어 정렬) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.07.02 |
백준 1152번 문제(단어의 개수) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.07.02 |
백준 1149번 문제(RGB거리) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.07.02 |
백준 1018번 문제(체스판 다시 칠하기) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.07.02 |