728x90
반응형
문제:
풀이방법:
문자열을 처리하고 규칙에 따라 정리를 하면 되는 문제이다.
우선 양 끝은 {{~~}}으로 고정이 되어 있다. 따라서 슬라이싱을 통해서 이 부분을 떼어내고 숫자들을 구분하기 위해서 '}.{'로 split을 한다. 이렇게 하면 ['2', '2,1' , '2,1,3' , '2,1,3,4'] 와 같이 분리되게 된다.
반복문으로 순환을 하면서 다시 ','을 기준으로 분리를 하면 숫자만 남게 되는데 이를 각 원소값이 int인 list로 tuples에 정리하게 된다. 이 단계까지 마치면 문자열을 규칙에 적용할 수 있도록 정리가 마무리 되었다.
규칙은 다음과 같다.
1. 각 list들을 길이가 짧은 순으로 정렬을 한다.
2. list의 숫자 값을 탐색하며 answer list에 없는 값이라면 answer에 넣고 break를 한 뒤 다음 list를 탐색한다.
따라서 이 규칙을 끝까지 적용하면 answer를 얻을 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
def solution(s):
answer=[]
splitS=s[2:-2].split("},{")
tuples=[]
for S in splitS:
parser=S.split(',')
tuples.append(list(map(int,parser)))
tuples.sort(key = len)
for tu in tuples:
for t in tu:
if t not in answer:
answer.append(t)
break
return answer
|
cs |
문제링크:
https://programmers.co.kr/learn/courses/30/lessons/64065
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[BOJ]1350. 진짜 공간 (0) | 2020.05.12 |
---|---|
[BOJ]5014. 스타트링크 (0) | 2020.05.07 |
[2019 Kakao winter internship]크레인 인형뽑기 게임 (0) | 2020.04.21 |
[BOJ]2863. 이게 분수? (0) | 2020.04.16 |
[BOJ]7785. 회사에 있는 사람 (0) | 2020.04.14 |