Problem Solving/Programmers

Programmers [2019 카카오 개발자 겨울 인턴십]: 튜플

이진2 2021. 1. 2. 23:49

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

 

배열을 집합으로 표현했을 때의 튜플이 주어지고, 이를 원 배열로 돌리는 문제이다.

1️⃣ 문자열을 '{', '}', ','로 분리한다 ("{{4,2,3},{3},{2,3,4,1},{2,3}}" -> "4,2,3", "3", "2,3,4,1", "2,3")

2️⃣ 분리한 문자열을 리스트로 변환한다 (-> [[4,2,3], [3], [2,3,4,1], [2,3]])

3️⃣ 리스트를 크기 순서로 변환한다 (-> [3], [2,3], [4,2,3], [2,3,4,1])

4️⃣ 크기 순서대로 이전 리스트에 없었던 문자를 추가한다 ( 3, 2, 4, 1 )

 

def solution(s):
    answer = []
    t=[]
    s=s.split('}')
    s=s[:-2]
    for i in range(len(s)):
        s[i]=s[i][2:]
        t.append(list(s[i].split(',')))
    t.sort(key=lambda x:len(x))
    for k in t:
        for i in k:
            if int(i) not in answer:
                answer.append(int(i))
    return answer