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