[Python]BaekJoon.AC

[Python]백준 BaekJoon.AC 1157 : 단어 공부(딕셔너리, sorted())

스뇨잉 2022. 1. 3. 17:00
728x90
728x90

 

 

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

 

1157번: 단어 공부

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

www.acmicpc.net

 

 

 

단어개수에 따라 내림차순으로 정렬하고 싶었는데, 가장 큰 수의 스펠링을 알아내기 위해 딕셔너리를 사용했다.

딕셔너리를 처음 사용해봤는데, 이것도 신기하면서도 편리하다..

앞서 배웠던 find()에서 착안해 count()를 사용해 알파벳마다 해당하는 단어 개수를 넣어줬다.

sorted()를 이용해 내림차순으로 정렬하고(sort 함수는 사용할 수 없었다. 딕셔너리 안받아줌..),

리스트가 되어버린 newD를 이차원 리스트 취급...?해줘가며 값을 뽑아냈다.

재밌는 문제였다.

 

 

S = input().upper()
alpb = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
dic = {}

for x in alpb:
    dic[x] = S.count(x)

newD = sorted(dic.items(), key=lambda x: x[1], reverse=True)

if newD[0][1] == newD[1][1]:
    print("?")
else:
    print(newD[0][0])

 

728x90
728x90