[프로그래머스/파이썬] 튜플(64065) 풀이

업데이트:



문제 정보


풀이

문제

문자열 형태로 주어진 집합 목록을 해석해 원래 튜플 순서를 복원하는 문제입니다.

핵심은 원소 개수가 작은 집합부터 보면 매 단계마다 “새로 추가된 원소”가 튜플의 다음 원소라는 점입니다.

코드

def solution(s):
    answer = []

    s = s[2:-2].split('},{')
    for i in range(len(s)): s[i] = set(map(int,s[i].split(',')))
    s.sort(key = lambda x: len(x))

    found = set([])
    for subset in s:
        for item in subset:
            if item not in found:
                answer.append(item)
                found.add(item)
    
    return answer

print(solution("{{2},{2,1},{2,1,3},{2,1,3,4}}"))

설명

처리 순서는 다음과 같습니다.

  • 문자열을 분해해 집합 리스트로 변환
  • 집합 크기 기준으로 오름차순 정렬
  • 이미 나온 원소(found)를 제외하고 새 원소를 순서대로 answer에 추가

이 방식으로 튜플 순서를 복원할 수 있습니다.



댓글남기기