[알각코] 백준 1157번 - 단어 공부

백준 1157번

word = input()

wlist = list(word.upper())
temp = {}

for i in range(len(wlist)):
    if wlist[i] not in temp:
        temp[wlist[i]] = 1
    else:
        temp[wlist[i]] += 1

maxKeyVal = ['', 0, False]
for key, val in temp.items():
    if val > maxKeyVal[1]:
        maxKeyVal[0] = key
        maxKeyVal[1] = val
        maxKeyVal[2] = False
    elif val == maxKeyVal[1]:
        maxKeyVal[2] = True

if maxKeyVal[2]:
    print('?')
else:
    print(maxKeyVal[0])

Screen Shot 2021-08-02 at 4 23 32 PM

python dict 개념을 오랜만에 다시 읽어보는 계기가 되었당

근데 속도가 너무 오래 걸리네…

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

다른 분의 코드이당

statistics의 mode 메소드를 활용해서 푸셨다.

Return the single most common data point from discrete or nominal data. The mode (when it exists) is the most typical value and serves as a measure of central location.

mode 메소드는 이산 또는 명목 데이터에서 가장 일반적인 단일 데이터 포인트를 반환한다. 가장 일반적인 값이며 중심 위치의 척도로 사용된다.

라는 설명이 되어있다. 즉, 가장 많은 값을 일반값이라고 가정하여 내놓는 것 같당

Reference