[Python] 카카오(2) 튜플

Updated: Categories:

https://programmers.co.kr/learn/courses/30/lessons/64065

아이디어

  1. 주어진 집합에서 원소의 등장횟수가 많은 순으로 튜플의 순서가 결정된다.
  2. 따라서 집합에서 원소당 등장횟수 내림차순으로 리스트를 구현한다.
  3. 일단 입력값이 문자열이므로 문자열을 리스트로 변환한다.
  4. 불필요한 요소들 { } , 등을 모두 제거하고 원소당 등장횟수 딕셔너리를 만들고 등장횟수의 내림차순으로 정렬한다.

알게 된 함수/방법

  • replace(삭제값, 바꿀값) : 문자열에서 해당 문자를 바꿔주는 함수
  • Conter(리스트) : 입력된 리스트의 원소들의 등장횟수를 구해서 원소별 등장횟수 딕셔너리를 반환해주는 함수
  • sorted(list, key, reverse) : 세가지 인자값을 가지고 있으며 key에 주어진 기준으로 리스트를 정렬한다.
  • lambda x: x[_] : 2차원 리스트를 정렬할때 키값에 넣으면 입력열을 기준으로 정렬한다.

정답 코드

from collections import Counter
def solution(s):
    s = s.replace('{', '')
    s = s.replace('}', '')
    s_list = s.split(',')
    s_list = [int (i) for i in s_list]
    cnt = Counter(s_list)
    s_cnt = sorted(cnt.items(), key=(lambda x: x[1]), reverse=True)
    answer = []
    for i in s_cnt:
        answer.append(i[0])
    return answer