티스토리 뷰

반응형

😅 문제 

🤔 문제 상황 

- 주어진 리스트를 보면 리스트 내부의 순서가 뒤죽박죽이고 순서가 중요하므로 단순히 정렬해서는 의미가 없다. 

- 주어진 리스트가 하나의 긴 string이고 부호가 {} 로 되어있으므로 리스트화 하기가 까다롭다. 

- split의 조건으로 '},{'를 사용하였다. 

 

🧐 해결 전략 

- 리스트를 정수화해서 담아준 뒤, 2차원으로 탐색하며 결과 요소에 없다면 새로 담는 식으로 풀이하였다. 

🎰 코드 

1
2
3
4
5
6
7
8
9
10
11
def solution(s):
    a = s[2:-2].split('},{')
    for i in range(len(a)):
        a[i] = list(map(int, a[i].split(',')))
    a.sort(key = len)
    result = []
    for i in range(len(a)):
        for j in range(len(a[i])):
            if a[i][j] not in result:
                result.append(a[i][j])
    return result
cs

 

🧙‍♂️ 해설

 

📈 새로 학습한 것 & 실수 

- 요소의 길이로 정렬하려면 sort(key = len) 을 하면 된다.

- strip() 함수는 공백만 제거된다. 특정 문자열을 양쪽으로 제거 할 수 있을줄 알고 a.lstrip('{{') 해봤지만 되지 않았다. 그래서 slicing을 활용하였다. 

반응형
댓글