Coding Test/programmers

[Python] 파이썬 프로그래머스 튜플

파송송 2023. 2. 10. 23:55
728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


나의 풀이

s값이 string("{{2},{2,1},{2,1,3},{2,1,3,4}}")으로 들어오기 때문에 숫자를 각 list에 담아 길이 순으로 정렬하고 set의 - 연산자를 이용하여 문제를 풀었다.

 

import re
def solution(s):
    answer = []
    s = re.split('[{|}]', s)
    s = [i.split(',') for i in s]
    s.sort(key=lambda x:len(x))

    answer.append(int(s[0][0]))

    for i in range(1,len(s)):
        num = set(s[i])-set(s[i-1])
        answer.append(int(num.pop()))



    return answer


다른 사람의 풀이

풀이 방식은 비슷하지만 re를 쓰지 않고 처리하였다. 

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

728x90