https://programmers.co.kr/learn/courses/30/lessons/64065?language=python3
코딩테스트 연습 - 튜플
"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]
programmers.co.kr
나의 풀이
더보기
import re
def solution(s):
answer = []
s_split = list()
s_dict = dict()
for i in re.split(r'{*}', s):
tmp = []
if i != '':
for k in i.split(','):
if k != '':
tmp.append(re.sub(r"[^0-9]","",k))
if tmp != []:
s_split.append(tmp)
for i in s_split:
for j in i:
if j in s_dict:
s_dict[j] += 1
else:
s_dict[j] = 1
sorted_dict = sorted(s_dict.items(), key = lambda x: x[1], reverse=True)
answer = [int(i[0]) for i in sorted_dict]
return answer
다른 사람의 풀이
- 한 줄 장인
더보기
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
- 파싱 참고
더보기
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
'Coding Test > 프로그래머스' 카테고리의 다른 글
[Level 2] / [Python] 배달 - 다익스트라 (Dijkstra) (0) | 2022.10.08 |
---|---|
[Level 2] - 가장 큰 수 (0) | 2022.06.01 |
[Level 2] - 수식 최대화 (0) | 2022.05.13 |
[Level 2] - 1차 뉴스 클러스터링 (0) | 2022.03.06 |
[Level 2] - 괄호 변환 (0) | 2022.03.06 |