주어진 문자열의 규칙성으로 문자열의 형태를 리스트화 하는 것이 중요하다. 그리고 for문으로 이중리스트를 돌게 하고 선택되는 2차 리스트에 대해서 기존 answer리스트와 차집합을 하여 업데이트 될 요소가 무엇인지 판단한다. 업데이트될 요소를 append로 answer리스트에 계속 순서가 있게 업데이트한다.
def solution(s):
# 문자열 형태 해체하기
lst_s = s[2:-2].split("},{")
lst_s.sort(key = lambda x : len(x)) # 리스트 길이로 정렬, 짧은 것 부터 조회하기 위함
lst_s = [x.split(',') for x in lst_s] # 한번 더 ','로 구분
answer = []
for i in lst_s:
prev = set(answer)
if len(i) == 1:
answer.append(i[0])
else:
add_p = set(i) - set(answer) # 차집합으로 업데이트 요소 찾기
answer.append(add_p.pop())
answer = list(map(int, answer)) # 문자열 정수로 변환
return answer