본문 바로가기

CS Study/Algorithm(Coding Test)

[Programmers] 2019 카카오 개발자 겨울 인턴십 - 튜플 (Python)

728x90
반응형
 

코딩테스트 연습 - 튜플

"{{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] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]

programmers.co.kr

 

문자열 다루는 문제!

 

집합 길이별로 정렬해서 새로 추가 된 숫자를 순서대로 정답 리스트에 넣어주면 된다!!

 

def solution(s):
    answer = []
    s = s[1:-1] # 대괄호 제거
    s = ''.join(s.split('{')).split('}')[:-1] # 집합 분리
    
    set_dict = dict() # 길이 별 집합 저장
    for i in s : 
        if i[0] == "," : i = i[1:] # 맨 앞 쉼표 제거
        nums = set(i.split(','))
        set_dict[len(nums)] = nums
    
    answer_set = set()
    for i in sorted(set_dict.keys()) : # 길이 짧은 순서대로 집합 업데이트
        diff = set_dict[i]-answer_set
        for num in diff : 
            answer_set.add(num)
            if num != "" :
                answer.append(int(num))
    return answer

 

728x90
반응형