## solution  

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하기. 대소문자를 구별하지 않으며 대문자로 출력해야한다.  

많이 사용된 알파벳이 여러개일 경우 ?를 출력한다.


## CODE  


```python

input_str = input().upper()

tmp_dict = {}

for tmp in input_str:

    tmp_dict[tmp] = tmp_dict.get(tmp,0) + 1

max_value = max(tmp_dict.values())

max_keys = [k for k,v in tmp_dict.items() if v==max_value]

if len(max_keys) == 1:

    print(''.join(max_keys))

else:

    print('?')

```

제출하여 정답처리 받은것.  



```python

input_str = input().upper()

set_str = list(set(input_str))

tmp_dict = {}

for tmp in set_str:

    tmp_dict.update({tmp:input_str.count(tmp)})

value_list = list(tmp_dict.values())

value_list.sort()

if value_list[-1] == value_list[-2]:

    print('?')

else:

    reversed_dict = {v:k for k,v in tmp_dict.items()}

    print(reversed_dict.get(value_list[-1]))

```

처음에 틀렸던 풀이.  

일단 dict 만들때 set을 사용할 필요가 없다. 자주 사용하지 않다보니 깔끔하지 않았다. 그리고 value_list[-1] == value_list[-2] 이렇게 판단하면 한글자가 들어올 경우 indexerror가 발생한다.  

이 풀이에서도 value값을 모아놓은 리스트에서 최대값이 하나인지 판별하고, 아닌경우 ? 를 출력했다면 정답처리 되었을것이다.