1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12973
2. 풀이
- 문자열에서 숫자와 쉼표만 남기고 모두 제거합니다.
- 각 문자열을 돌면서 숫자와 쉼표의 조합인 경우에는 배열로 생성합니다.
- 딕셔너리(해쉬)를 이용하여 문자열의 존재 유무를 체크합니다.
import re
def solution(s):
answer = []
_s = re.split('[{}]', s[1:-1]) # 문자열에서 {} 를 모두 제거하고 숫자와 쉼표만 남김
arr = []
for x in _s: # 각 문자열을 돌면서 숫자와 쉼표의 조합인 경우에는 배열로 생성합니다.
if x == '' or x == ',':
continue
arr.append(x.split(','))
arr = sorted(arr, key=lambda x: len(x)) # 배열 크기 순서대로 정렬
is_exist = {} # 딕셔너리를 이용하여 문자열의 존재유무를 체크합니다.
for x in arr:
for num in x:
if num not in is_exist:
is_exist[num] = 1
answer.append(int(num))
return answer