[알고리즘] 프로그래머스- 튜플

June·2021년 3월 5일
0

알고리즘

목록 보기
117/260

2019 카카오 개발자 겨울 인턴십

내 풀이

def solution(s):
    s = s[1:-1]
    ans = []
    sub_tuples = s.split(",{")
    for i in range(len(sub_tuples)):
        sub_tuples[i] = sub_tuples[i].replace("{","").replace("}", "").split(",")

    sub_tuples.sort(key = lambda x: len(x))
    for subset in sub_tuples:
        for element in subset:
            if element not in ans:
                ans.append(element)
    return list(map(int, ans))

처음에는 튜플과 집합의 차이점을 인지하지 못해서 통과하지 못했다. 튜플은 순서가 중요한데 집합에는 순서가 바뀔 수 있다. 따라서 순서가 바뀌지 않는 1개짜리 집합에서 시작해서 하나씩 잡아가야한다.

다른 사람 풀이

def solution(s):

    s = Counter(re.findall('\d+', s))
    return list(map(int, [k for k, v in sorted(s.items(), key=lambda x: x[1], reverse=True)]))

import re
from collections import Counter

정규식과 Counter를 이용해서 우아하게 풀었다.

0개의 댓글