[Prgms_Kakao] 튜플

2019 카카오 겨울 인턴

튜플

🔗 전체 문제 : 튜플

튜플에는 순서가 있다
원소의 개수가 n개이고, 중복되는 원소가 없는 튜플 (a1, a2, a3, ..., an)이 주어질 때(단, a1, a2, ..., an은 자연수), 이는 다음과 같이 집합 기호 '{', '}'를 이용해 표현할 수 있습니다.
-> {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, ... {a1, a2, a3, a4, ..., an}}

🔈 풀이

def solution(s):
    s = s.replace('{','[',s.count('{'))
    s = s.replace('}',']',s.count('}'))
    s = sorted(eval(s), key=lambda x: len(x))#[[2], [2, 1], [2, 1, 3], [2, 1, 3, 4]]
    result = []
    for i in s:
        set_i = set(i)
        if len(result) == 0:
            result += i
        else:
            set_result = set(result)
            add = list(set_i - set_result)
            result += add

    return result

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

🔉 다른 사람 풀이

# 다른 사람 풀이
def solution(s):
    answer = []

    s1 = s.lstrip('{').rstrip('}').split('},{')

    new_s = []
    for i in s1:
        new_s.append(i.split(','))

    new_s.sort(key = len)

    for i in new_s:
        for j in range(len(i)):
            if int(i[j]) not in answer:
                answer.append(int(i[j]))

    return answer

좋은 웹페이지 즐겨찾기