Problem Solving/Programmers
Programmers [2019 카카오 개발자 겨울 인턴십]: 튜플
이진2
2021. 1. 2. 23:49
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️⃣ 문자열을 '{', '}', ','로 분리한다 ("{{4,2,3},{3},{2,3,4,1},{2,3}}" -> "4,2,3", "3", "2,3,4,1", "2,3")
2️⃣ 분리한 문자열을 리스트로 변환한다 (-> [[4,2,3], [3], [2,3,4,1], [2,3]])
3️⃣ 리스트를 크기 순서로 변환한다 (-> [3], [2,3], [4,2,3], [2,3,4,1])
4️⃣ 크기 순서대로 이전 리스트에 없었던 문자를 추가한다 ( 3, 2, 4, 1 )
def solution(s):
answer = []
t=[]
s=s.split('}')
s=s[:-2]
for i in range(len(s)):
s[i]=s[i][2:]
t.append(list(s[i].split(',')))
t.sort(key=lambda x:len(x))
for k in t:
for i in k:
if int(i) not in answer:
answer.append(int(i))
return answer