본문 바로가기
Algorithm/프로그래머스

[프로그래머스] Lv2 - 튜플 (파이썬)

by 2HS 2022. 4. 2.
 

코딩테스트 연습 - 튜플

"{{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

 

import re


def solution(s):
    result = re.findall('[{][\d,]+[}]', s)
    result.sort(key=lambda x: len(x))
    answer = []
    now = set()
    for x in result:
        next = set(list(x[1:-1].split(',')))
        num = list(next - now)[-1]
        answer.append(int(num))
        now = next
    return answer

 

2019 카카오 겨울 인턴십
1. 정규표현식을 이용해서 {...}인 문자열들을 리스트로 반환
2. 리스트를 길이가 짧은 순서로 정렬
3. now : 빈 집합
4. for문
    - 각 원소마다 처음과 마지막(중괄호)을 슬라이싱으로 제외하고 split(',')
    - next : 3번의 값을 집합으로 만들어준다.
    - next - now : 차집합 연산을 수행해준다. (값이 하나 존재, 해당 값을 int화 해서 answer에 append)
    - now = next : now를 초기화
5. answer 리턴

 

앞선 수식 최대화 문제에서 삽질한 한을 여기서 풀었다.

감격의 10분 컷

 

파이썬 정규 표현식을 조금 더 깊게 공부를 해봐야겠다.

조금만 더 복잡한 구조에서 원하는 값을 찾는 연습을 해보자.