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분 컷
파이썬 정규 표현식을 조금 더 깊게 공부를 해봐야겠다.
조금만 더 복잡한 구조에서 원하는 값을 찾는 연습을 해보자.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv2 - 게임 맵 최단거리 (파이썬) (0) | 2022.04.03 |
---|---|
[프로그래머스] Lv2 - 빛의 경로 사이클 (파이썬) (0) | 2022.04.03 |
[프로그래머스] Lv2 - 수식 최대화 (파이썬) (1) | 2022.04.02 |
[프로그래머스] Lv2 - 거리두기 확인하기 (파이썬) (0) | 2022.04.01 |
[프로그래머스] Lv2 - 괄호 변환 (파이썬) (0) | 2022.04.01 |