문제
9046번: 복호화
입력의 T(1 ≤ T ≤ 20)는 테스트 케이스로, 입력 제일 상단에 주어진다. 각각의 테스트 케이스는 한 줄마다 소문자와 공백으로 이루어진 영어 문장이 주어진다. 이 문장의 길이는 적어도 1이상이
www.acmicpc.net
코드
My answer
import sys
input=sys.stdin.readline
n=int(input())
for i in range(n):
tmp=dict()
code=input().rstrip()
for j in code:
if(j!=" "):
if(j not in tmp):
tmp[j]=1
else:
tmp[j]+=1
tmp=sorted(tmp.items(), key=lambda x:-x[1])
if(len(tmp)==1):print(tmp[0][0])
elif(tmp[0][1]==tmp[1][1]):
print("?")
else:print(tmp[0][0])
Another answer
import statistics as s
for _ in[0]*int(input()):
try:print(s.mode(input().replace(' ',"")))
except:print('?')
풀이
내 코드는 그냥 문자열을 입력받고 문자열의 문자들에 대한 딕셔너리를 만든 후 정렬해서 문제를 풀었다. 아래 코드는 파이썬의 statistics 모듈의 mode함수를 이용했는데 mode함수는 최빈값을 찾는 함수이다. 다음번에 stastistics 모듈에 대해서 자세하게 알고리즘 카테고리에 글을 써보도록 하겠다!
728x90
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
| [Python] 백준 #13305- 주유소 (0) | 2022.01.16 |
|---|---|
| [Python] 백준 #1931- 회의실 배정[try_again] (0) | 2022.01.16 |
| [Python] 백준 #11365- !밀비 급일 (0) | 2022.01.15 |
| [Python] 백준 #3029- 경고 (0) | 2022.01.15 |
| [Python] 백준 #18511- 큰 수 구성하기[try_again] (0) | 2022.01.14 |