푸는시간이 오래 걸린 문제다.
저번에 풀었던 백준 1157 - 단어 공부 문제와 비슷하지만
지금 문제는 동일 max값이 2개 이상 존재할때도 값을 출력하는점이 저번문제와 조금 다르다. 접근방식을 조금 다르게 했어야하는데, 저번 풀이방법과 비슷하게 하다보니까 명확하게 문제를 해결하지 못했다.
어쩌다보니 문제를 풀면서 문법을 같이 공부하게 되었는데, sort()
, sorted()
함수의 차이점을 잘 알았다.
보통의 경우라면 sorted()
를 사용하는편이 낫다.
None
을 출력한다.(리스트를 제자리에서 수정하기 때문)iterable
값들을 새로 돌려준다.reference: 파이썬 공식문서
풀이 순서는 다음과 같다.
Counter
모듈 선언- 입력값을
dict
형으로 바꾸기values
만 추출max
값을 찾기위해 정렬(sorted())dict
를 돌면서value
값이max
값과 동일하면 리스트에 추가- 사전순으로 출력해야하므로 재 정렬
from collections import Counter
mylist = input().strip()
dic = dict(Counter(mylist))
values = [i for i in dic.values()]
values = sorted(values, reverse=True)
big = values[0]
result = [i for i, k in dic.items() if big == k]
result = ''.join(sorted(result))
print(result)