문제
programmers.co.kr/learn/courses/30/lessons/64065
코딩테스트 연습 - 튜플
"{{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
코드
1) 두개의 배열(arr1, arr2)을 비교하여 arr2에 없는 arr1의 원소를 반환
def solution(s):
sets = s[2:-2].split('},{')
for i in range(len(sets)):
sets[i] = list(map(int,sets[i].split(',')))
sets[i].sort()
set(sets[i])
sets.sort(key=lambda x:len(x))
answer = sets[0]
for i in range(1, len(sets)):
for j in range(len(sets[i])):
if sets[i][j] not in sets[i-1]:
answer.append(sets[i][j])
return answer
다른 사람의 풀이
1) 정규표현식과 collections모듈의 Counter 이용
import re
from collections import 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)]))
리스트 컴프리헨션을 이용하여 간단하고 가독성이 좋게 만든것도 인상적인 코드였다!
'⏳ 알고리즘 > python 알고리즘 문제 풀이' 카테고리의 다른 글
리트코드 - 349. Intersection of Two Arrays (0) | 2021.05.07 |
---|---|
프로그래머스 - LV3. 가장 긴 팰린드롬 (0) | 2021.05.02 |
프로그래머스 - LV3. 2*n 타일링 (0) | 2021.04.29 |
프로그래머스 - LV2. 조이스틱 (0) | 2021.04.27 |
프로그래머스 - LV2. 전화번호 목록 (0) | 2021.04.27 |