문제

[프로그래머스] 튜플 (LV. 2)

요약

  • 중복되는 원소가 없는 튜플 (a1, a2, a3, …, an) 이 주어짐
  • 이는 다음과 같이 집합 기호 ‘{’, ‘}‘를 이용해 표현할 수 있음.
    • {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, … {a1, a2, a3, a4, …, an}}
  • 집합이기 때문에 원소의 순서가 바뀔 수도 있음. - {{a1}, {a2, a1}, {a3, a1, a3}, {a1, a4, a2, a3}, … {a2, a1, a3, a4, …, an}}

분류

  • 문자열

풀이

1. 내 풀이

  • 길이가 1인 집합의 원소는 반드시 튜플의 첫 번째 요소가 됨.
  • 길이가 2인 집합의 원소들 중, 길이가 1인 집합의 원소를 제외하면, 튜플의 두 번째 원소가 됨
  • 길이가 n인 집합의 원소들 중, 길이가 n-1인 집합의 원소들을 제외하면, 튜플의 n 번째 원소가 됨.


def solution(s):
    answer = {}
    s = sorted(s[2 : -2].split('},{'), key = lambda x: len(x))
    for tuples in s:
        elements = tuples.split(',')
        for element in elements:
            number = int(element)
            if number not in answer:
                answer[number] = 1

    return list(answer)