[ python ] 가장 많이 등장하는 알파벳 찾기

안영우·2021년 3월 22일
1

[ 프로그래머스 ]

목록 보기
1/10
post-thumbnail

📌 가장 많이 등장하는 알파벳 찾기

푸는시간이 오래 걸린 문제다.
저번에 풀었던 백준 1157 - 단어 공부 문제와 비슷하지만
지금 문제는 동일 max값이 2개 이상 존재할때도 값을 출력하는점이 저번문제와 조금 다르다. 접근방식을 조금 다르게 했어야하는데, 저번 풀이방법과 비슷하게 하다보니까 명확하게 문제를 해결하지 못했다.

어쩌다보니 문제를 풀면서 문법을 같이 공부하게 되었는데, sort(), sorted()함수의 차이점을 잘 알았다.
보통의 경우라면 sorted()를 사용하는편이 낫다.

  1. sort()
  • 공간절약을 위해 시퀀스를 제자리에서 정렬한다.
  • 새로운 변수로 반환시 None을 출력한다.(리스트를 제자리에서 수정하기 때문)
  • 리스트에서만 사용가능하다.
  1. sorted()
  • iterable 값들을 새로 돌려준다.

reference: 파이썬 공식문서


💡 나의 풀이

풀이 순서는 다음과 같다.

  1. Counter 모듈 선언
  2. 입력값을 dict형으로 바꾸기
  3. values만 추출
  4. max값을 찾기위해 정렬(sorted())
  5. dict를 돌면서 value값이 max값과 동일하면 리스트에 추가
  6. 사전순으로 출력해야하므로 재 정렬
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)
profile
YW_Tech

0개의 댓글