나의 풀이

def solution(s):
    data = []
    tmp = []
    cur = ""

    for i in s:
        if i.isdigit():
            cur = cur + i

        if i == ',' and any(cur):
            tmp.append(cur)
            cur = ""

        elif i == '}':
            if any(cur):
                tmp.append(cur)
                cur = ""
            if any(tmp):
                data.append(tmp)
                tmp = []

    data.sort(key=lambda x:len(x))
    data = [set(i) for i in data]

    result = [data[0]]
    for i in range(1, len(data)):
        result.append(data[i] - data[i - 1])
    result = [int(list(i)[0]) for i in result]
    return result

 

다른 풀이

def solution(s):
    answer = []

    s1 = s.lstrip('{').rstrip('}').split('},{')

    new_s = []
    for i in s1:
        new_s.append(i.split(','))

    new_s.sort(key = len)

    for i in new_s:
        for j in range(len(i)):
            if int(i[j]) not in answer:
                answer.append(int(i[j]))

    return answer

 

strip으로 {, }을 처리 해줄 수도 있다.

+ Recent posts