풀이
문제를 잘 보면 모든 집합에서 각 숫자를 카운트해보면 가장 많이 나온 숫자가 튜플에서 맨 첫 번째의 원소가 되고 두 번째로 많이 나온 숫자가 튜플에서 두 번째 원소가 됩니다
이를 이용해서 문자열을 처리하고 딕셔너리를 사용하여 해결했습니다.
이때, 문자로만 처리했기때문에 마지막에 map함수를 사용해서 정수형으로 바꾸어주어야 하고 카운트한 숫자가 높은 순 이므로 내림차순 정렬을 해야 합니다.
코드
def solution(s):
answer = []
num_rank = {}
temp_s = s[2:-2].replace('},{', ' ').replace(',', ' ')
temp_s = temp_s.split(" ")
for num in temp_s:
if num in num_rank:
num_rank[num] += 1
else:
num_rank[num] = 1
answer = list(map(int, sorted(num_rank, key=lambda x: num_rank[x], reverse=True)))
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Python] 프로그래머스 캐시 (0) | 2021.04.10 |
---|---|
[Python] 수식 최대화 (0) | 2021.03.28 |
[Python] 순위 검색 (0) | 2021.03.21 |
[Python] 괄호 변환 (0) | 2021.03.21 |
[Python] 메뉴 리뉴얼 (0) | 2021.03.15 |