SMALL
문제 출처
풀이 코드
temp=input().strip()
temp=temp.lower()
dic={}
for ch in temp:
if ch in dic.keys():
dic[ch]+=1
else:
dic[ch]=1
m = max(dic.values())
answer = []
for key, value in dic.items():
if value==m:
answer.append(key.upper())
if len(answer)==1:
print(answer[0])
else:
print('?')
딕셔너리를 사용해서 단어 개수를 세 주었습니다.
그리고 value로 key를 반환하도록 합니다.
key로 value를 반환하는 함수는 dict에서 주어지지만,
그 반대의 경우(value로 key를 반환) 는 따로 함수가 없어서 for문을 만들었습니다.
value로 key를 반환할 경우에는 for문을 만들거나, map함수로 딕셔너리의 key, value 값을 뒤집어(?) 주면 됩니다.
dic={'a':0, 'b':12, 'c':5}
reverse_dic=dict(map(reversed, dic.items()))
print(dic) # {'0':'a', '12':'b', '5':'c'}
그리고 오늘 코드에서 알게된 것..!
# True 를 반환
print(ch in dic.keys())
# False 를 반환
print(ch in dic.keys()==True)
조건문에 많이 사용하는 구문인데, 뒤에 "==True" 를 쓰면,, 의도한 결과가 안 나오던군요ㅋㅋㅋ
LIST
'알고리즘-python > 백준 문제' 카테고리의 다른 글
[백준/2675/파이썬(Python3)] 문자열 반복 (0) | 2021.07.02 |
---|---|
[백준/10809/파이썬(Python3)] 알파벳 찾기 (0) | 2021.07.01 |
[백준/11720/파이썬(Python3)] 숫자의 합 (0) | 2021.06.29 |
[백준/11654/파이썬(Python3)] 아스키코드 (0) | 2021.06.29 |
[백준/1110/파이썬(Python3)] 더하기 싸이클 (0) | 2021.06.28 |