코딩테스트 연습 - 튜플 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 튜플

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


내 풀이

def solution(s):
    answer = []
    s = s[2:-2]
    s = s.split("},{")
    s.sort(key=len)
    
    for i in s:
        j = i.split(',')
        for k in j:
            if int(k) not in answer:
                answer.append(int(k))
    return answer

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

 

위에 친구를 예로 들어서 생각하면 들어오는 문자열의 처음과 끝 '{','}' 를 제거해준다.

가령 위에 친구를 기준으로

2,},{2,1},{2,1,3},{2,1,3,4 가 남게된다.

다음으로

split으로 }{를 기준으로 나눠주면

'2', '2,1', '2,1,3', '2,1,3,4' 남게되고 길이를 기준으로 다시 정렬해준다.

그 다음 , 를 기준으로 나눠주고 그 안에 요소들이 answer 에 없으면 더해준다.

 

 


다른사람의 풀이

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

정규식으로 표현한 파이써닉한 풀이.


종강하고 오히려 더 바빠진탓에 문제를 한동안 못풀었는데 꼭 하루에 한문제는 풀어야겠따..

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

가장 큰 수 - 파이썬  (0) 2022.07.01
프린터 - 파이썬  (0) 2022.06.27
뉴스 클러스터링 - 파이썬  (0) 2022.06.15
괄호 변환 - 파이썬  (0) 2022.06.13
메뉴 리뉴얼 - 파이썬  (0) 2022.06.06

+ Recent posts