소스 코드

def solution(s):
    answer = []

    answer_lst = []
    temp_lst = []
    for q in range(1, len(s) - 1):

        # {에서 시작
        if s[q] == '{':
            temp = ''

        # }에서 초기화 및 answer_lst에 현재까지의 값들 추가
        elif s[q] == '}':
            temp_lst.append(int(temp))
            temp = ''
            answer_lst.append(temp_lst)
            temp_lst = []

        # ,는 두 가지 경우 있음
        # 숫자,숫자 의 경우와 },{의 경우
        # },{의 경우에 또 추가하지 않기 위해서 len 조건 추가
        elif s[q] == ',':
            if len(temp) != 0:
                temp_lst.append(int(temp))
                temp = ''

        # 그 외는 숫자라 그냥 추가
        else:
            temp += s[q]

    # 원소의 길이에 따른 정렬
    answer_lst.sort(key=lambda x: len(x))

    for w in answer_lst:
        for e in w:
            if e not in answer:
                answer.append(e)

    return answer

 


해결 방법

1. [1], [1,2], [1,2,3] 은 {1,2,3}을 의미함

 

2. 원소의 길이에 따라 정렬하고, 하나씩 값을 추가하면 될 것이라 생각하고 문제 해결


느낀 점

1. 다른 사람들의 코드를 보니 훨씬 깔끔하고, 생각이 많이 들어간 코드처럼 보임

(내가 해결한 방법은 상대적으로 막 작성한 느낌...)

 

ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.

 

오류적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.

 

혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.