728x90
나의 풀이
def solution(s):
answer = []
sets = []
temp_set = set()
temp_num = 0
for x in s[1:-1]:
if x == '{':
temp_num = 0
temp_set = set()
elif x == '}':
if temp_num:
temp_set.add(temp_num)
temp_num = 0
sets.append(temp_set)
elif x == ',':
if temp_num:
temp_set.add(temp_num)
temp_num = 0
else:
temp_num = temp_num * 10 + int(x)
sets.sort(key=lambda x: len(x))
for s in sets:
for i in s:
if i not in answer:
answer.append(i)
break
return answer
정규표현식과 counter를 사용한 풀이
def solution(s):
s = Counter(re.findall('\d+', s))
return list(map(int, [k for k, v in sorted(s.items(), key=lambda x: x[1], reverse=True)]))
import re
from collections import Counter
lstrip과 rstrip을 사용한 풀이
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
eval을 사용한 풀이
def solution(s):
s = eval(s.replace("{", "[").replace("}", "]"))
answer = list({num:0 for k in sorted(s, key=lambda x: len(x)) for num in k}.keys())
return answer
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스/파이썬] 게임 맵 최단거리 (0) | 2022.06.13 |
---|---|
[프로그래머스/파이썬] 빛의 경로 사이클 (0) | 2022.06.13 |
[프로그래머스/파이썬] 수식 최대화 (0) | 2022.06.13 |
[프로그래머스/파이썬] 거리두기 확인하기 (0) | 2022.06.12 |
[프로그래머스/파이썬] [1차] 뉴스 클러스터링 (0) | 2022.06.12 |