Algorithm/programmers/2019 카카오 개발자 겨울 인턴십/level2/ 튜플(with python)

yellow·2021년 6월 21일
0

알고리즘 문제

목록 보기
49/58

📖 문제

📝 풀이 과정

  1. 입력 받은 집합 문자열 s를 처리하기 쉽도록 자른다.
    1-1. 우선 s[2:-2]를 해서 제일 바깥 문자 {}를 2개씩 지운다.
          예시){{1},{1,2},{1,2,3}} -> 1},{1,2},{1,2,3
    1-2. split메소드를 이용해서 },{을 기준으로 문자열을 잘라서 리스트에 담는다.
          예시)1},{1,2},{1,2,3 -> ['1','1,2','1,2,3']
  2. 1-2에서 생성한 리스트를 문자열의 길이를 기준으로 오름차순으로 정렬한다.
  3. 1-2에서 생성한 리스트를 순회한다.
    3-1. 현재 요소를 ,를 기준으로 문자열을 잘라서 리스트에 넣는다.
          예시){1,2,3} -> [1,2,3]
    3-2. 3-1에서 생성한 리스트를 순회하면서 현재까지 구한 튜플 안에 해당 숫자가 없으면 구하고자 하는 튜플의 다음 원소가 된다.

⌨ 코드

def solution(s):
    answer = []
    # 1-1, 1-2
    s = s[2:-2].split('},{')
    # 2
    s = sorted(s, key = len)

    for element in s:
        # 3-1
        num_in_element = element.split(',')
        for num in num_in_element:
            num = int(num)
            # 3-2
            if num not in answer:
                answer.append(num)   
    return answer
profile
할 수 있어! :)

0개의 댓글