Algorithm/프로그래머스
프로그래머스 - 튜플 (2019 카카오 개발자 겨울 인턴십) / Level 2
0_Hun
2022. 1. 22. 14:59
문제
https://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
풀이
def solution(s):
answer = []
s_list = []
nums=[]
temp_nums = ""
for i in s:
if i.isdigit():
temp_nums += i
elif i == ',':
if temp_nums:
nums.append(int(temp_nums))
temp_nums = ""
elif i == '}':
if temp_nums:
nums.append(int(temp_nums))
s_list.append(nums)
temp_nums = ""
nums = []
s_list.sort(key=lambda x : len(x))
for i in s_list:
for j in i:
if j not in answer:
answer.append(j)
return answer
어렵지 않은 문제였다. 입력으로 들어온 문자열을 하나의 튜플로 귀결시키기 위해선
튜플은 순서가 유효하기 때문에 집합의 길이가 작은 순대로 넣어줘야 했다.
그래서 일단 문자열을 이중 리스트로 변환시켜주고 각각의 배열의 길이를 기준으로 정렬을 수행한 후
순회하면서 튜플에 넣어줬다.