Algorithm/1일 1코테

[😍 프로그래머스] 튜플 (2019 카카오 개발자 겨울 인턴십)

대인보우 2021. 8. 26. 23:43
반응형

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

 

코딩테스트 연습 - 튜플

"{{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

 

🏐 나의 풀이 🏐

from collections import Counter
def solution(s):
    s= s.replace('{','') # 괄호 제거
    s= s.replace('}','')
    s = list(map(int, s.split(','))) # ,으로 숫자 구분
    number_dict = Counter(s) # 갯수 셈
    
    # 가장 많이 언급된 순서대로 key 저장
    return [k for k, v in number_dict.most_common(len(number_dict))]

문제가 잘 이해가 안됐다.. 나는 가장 먼저 중복이 된 숫자 순서대로 넣는 줄..

근데 많이 나온 순서였다.

 

🏐 다른 사람 풀이 🏐

import re
from collections import Counter

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)])) # value를 기준으로 정렬한 뒤 key  뽑아냄

 

정규표현식은 아주 중요해용^^

반응형