코딩테스트 연습 - 튜플 | 프로그래머스 (programmers.co.kr)
내 풀이
def solution(s):
answer = []
s = s[2:-2]
s = s.split("},{")
s.sort(key=len)
for i in s:
j = i.split(',')
for k in j:
if int(k) not in answer:
answer.append(int(k))
return answer
"{{2},{2,1},{2,1,3},{2,1,3,4}}"
위에 친구를 예로 들어서 생각하면 들어오는 문자열의 처음과 끝 '{','}' 를 제거해준다.
가령 위에 친구를 기준으로
2,},{2,1},{2,1,3},{2,1,3,4 가 남게된다.
다음으로
split으로 }{를 기준으로 나눠주면
'2', '2,1', '2,1,3', '2,1,3,4' 남게되고 길이를 기준으로 다시 정렬해준다.
그 다음 , 를 기준으로 나눠주고 그 안에 요소들이 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
정규식으로 표현한 파이써닉한 풀이.
종강하고 오히려 더 바빠진탓에 문제를 한동안 못풀었는데 꼭 하루에 한문제는 풀어야겠따..
'취준 > 프로그래머스' 카테고리의 다른 글
가장 큰 수 - 파이썬 (0) | 2022.07.01 |
---|---|
프린터 - 파이썬 (0) | 2022.06.27 |
뉴스 클러스터링 - 파이썬 (0) | 2022.06.15 |
괄호 변환 - 파이썬 (0) | 2022.06.13 |
메뉴 리뉴얼 - 파이썬 (0) | 2022.06.06 |