튜플

less than 1 minute read

튜플로 이루어진 요소를 정리하는 문제이다. 카카오 인턴십 두번째 문제로 난이도는 낮은 편이다.

문제 설명

참조: https://programmers.co.kr/learn/courses/30/lessons/64065

문제 풀이

입력이 문자로 주어지므로 앞뒤 {, }를 지우고 }, 기준으로 split해주었다.

그러면 {}가 남고 그 외 문자는 {이 남는다. 이를 제거해주고 리스트로 모두 만들어준다.

그리고 만들어진 리스트를 길이 기준으로 정렬하여 정리한다.

마지막으로 리스트를 순서대로 루프를 돌리며 추가된 element를 찾아 정답 리스트에 넣어준다.

def solution(s):
    # {} 제거
    s = s[1:-1]
    s = s.split{'},'}
    n = len(s)
    
    # { 혹은 {} 정리
    tuple_s = []
    for idx, each in enumerate(tuple_s):
        if idx != n-1:
            temp = each[1:].split(',')
        else:
            temp = each[1:-1].split(',')
        tuple_s.append(temp)
        
    # 리스트 정렬
    tuple_s = sorted(tuple_s, key = lambda data: len(data))
        
    # 순서대로 추가된 element를 answer에 삽입
    answer = [tuple_s[0][0]]
    for each in tuple_s[1:]:
        element = set(each)-set(answer)
        answer.append(list(element)[0])
    
	return list(map(int, answer))

Leave a comment