기록하는삶

[코딩 테스트 연습(파이썬/Python)] 백준 1157번 _ 단어 공부 본문

백준(Python)/문자열

[코딩 테스트 연습(파이썬/Python)] 백준 1157번 _ 단어 공부

mingchin 2021. 12. 16. 19:57
728x90
반응형

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

[문제]

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

 

[입력]

첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.

[출력]

첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.

 

[아이디어]

Counter 모듈 활용

from collections import Counter
s = input().upper()
c = Counter(s).most_common()
if len(c)==1: print(c[0][0])
elif c[0][1]==c[1][1]: print('?')
else: print(c[0][0])

+

from statistics import*
try:t=mode(input().upper())
except:t='?'
print(t)

과거에는 statistics.mode()가 최빈값이 있으면 반환하고, 없으면 error를 발생시켰던 것 같다. 그러나 지금은 최빈값 중 더 앞에 위치한 것(문자, 배열 등이 모두 가능)을 반환하여 해당 문제를 이 코드로 풀 수 없다.

728x90
반응형