문제 설명
•
특정 튜플을 표현하는 집합이 담긴 문자열 가 매개변수로 주어질 때, 가 표현하는 튜플을 배열에 담아 반환하는 문제
예제 입력/출력
s | result |
"{{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] |
"{{20,111},{111}}" | [111, 20] |
"{{123}}" | [123] |
"{{4,2,3},{3},{2,3,4,1},{2,3}}" | [3, 2, 4, 1] |
제약 조건
•
•
return 하는 배열의 길이
문제 풀이
•
풀이 정렬 -
◦
문제의 핵심은 입력된 문자열 형태의 집합들로부터 중복되지 않는 숫자들을 순서대로 추출하는 것
◦
접근 방식
1.
문자열 파싱 후 리스트 형태로 변환
•
예: {{1,2},{2,1}} → [[1, 2], [2, 1]]
2.
생성된 숫자 리스트들을 길이 순으로 정렬
•
가장 작은 집합부터 처리하여 점진적으로 숫자를 추가하기 위함.
3.
정렬된 각 집합을 순회하면서 이전 집합에서 나오지 않는 숫자를 추가
풀이 코드
•
풀이 정렬 -
def solution(s):
answer = []
tmp_s = s.lstrip('{').rstrip('}').split('},{')
tuples = []
for ts in tmp_s:
tuples.append(ts.split(','))
tuples.sort(key = len)
for tup in tuples:
for n in tup:
if int(n) not in answer:
answer.append(int(n))
return answer
Python
복사