본문 바로가기
알고리즘/프로그래머스

[Python] 튜플

by 컴공맨 2021. 3. 27.
 

코딩테스트 연습 - 튜플

"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]

programmers.co.kr


풀이

문제를 잘 보면 모든 집합에서 각 숫자를 카운트해보면 가장 많이 나온 숫자가 튜플에서 맨 첫 번째의 원소가 되고 두 번째로 많이 나온 숫자가 튜플에서 두 번째 원소가 됩니다

이를 이용해서 문자열을 처리하고 딕셔너리를 사용하여 해결했습니다.

이때, 문자로만 처리했기때문에 마지막에 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

 

pyo7410/Algorithm

1일 1커밋을 목표로! Contribute to pyo7410/Algorithm development by creating an account on GitHub.

github.com

 

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[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