반응형
문제:
https://school.programmers.co.kr/learn/courses/30/lessons/64065
풀이:
입력받은 s를 리스트로 변환한다.
그 이후에는 만들어진 리스트의 요소를 하나씩 접근, answer 리스트에 중복이 되지 않도록 not in 을 사용하여 하나 씩 append 한다. 여기서 핵심은
- {{2}, {2,1}, {2,1,3}, {2,1,3,4}}
- {{2,1,3,4}, {2}, {2,1,3}, {2,1}}
- {{1,2,3}, {2,1}, {1,2,4,3}, {2}}
일 경우 다 같은 튜플로 처리해야 하는 2,1,3,4 조합이다.
그러므로 세 번째의 경우에는 리스트로 변환하면 [[1, 2, 3], [2, 1], [1, 2, 4, 3], [2]]인데, 이 리스트를 하나씩 접근하여 튜플을 만들기 위해서는 우선 만들어진 리스트를 길이를 기준으로 정렬하기 위해서 s_list.sort( key = len) 를 실행해준다. 만약, 길이를 기준으로 정렬을 하지 않는다면 [1,2,3,4] 가 만들어질 것이다. loop문으로 앞에서부터 접근하기 때문.
def solution(s):
answer = []
s_list = s.replace('{', '').replace('}}', '').split('},')
s_list.sort(key=len)
for string in s_list:
numbers = list(map(int, string.split(',')))
for number in numbers:
if number not in answer:
answer.append(number)
return answer
반응형
'Python 코딩테스트' 카테고리의 다른 글
[프로그래머스] 파일명 정렬 파이썬 (0) | 2022.10.24 |
---|---|
BFS: 백준 13549 숨바꼭질 3 (0) | 2022.10.21 |
그리디: 백준 1931 파이썬 회의실 배정 (1) | 2022.10.15 |
DP(다이나믹 프로그래밍): 백준 15988 파이썬 1,2,3 더하기 3 (0) | 2022.10.13 |
[프로그래머스] 기능개발 파이썬 (1) | 2022.10.11 |