HEAD, NUMBER, TAIL은 중간의 NUMBER 기준으로 갈라진다.
따라서 split과 숫자 정규식을 활용해 구간을 나누고
HEAD 기준으로 첫번째, NUMBER 기준으로 두번째 총 두 번 정렬을 수행한 뒤
나누어진 구간들을 join으로 합쳐 하나의 파일명으로 만들고
정렬된 파일명 리스트를 반환한다.
import re
def solution(files):
temp = [re.split(r"([0-9]+)", s) for s in files]
print(temp)
sort = sorted(temp, key = lambda x: (x[0].lower(), int(x[1])))
return [''.join(s) for s in sort]
point1. split을 수행하면 결과물은 list에 담겨 나온다.
point2. 정규식을 이용하여 split 할 때 구분자에 ()를 쳐주면 해당 구분자가 삭제되지 않는다. r' ~ ' 형태로만 쓰면 정규식에 해당하는 구분자는 삭제되고, 그 앞뒤로만 분리되어 반환된다. 구분자 삭제를 원치 않으면 정규식을 r'( ~ )'에 담아야 한다.
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'코딩테스트 연습' 카테고리의 다른 글
[파이썬] 프로그래머스: 가장 큰 수 / 아스키코드 (0) | 2023.03.21 |
---|---|
[파이썬] 프로그래머스: 셔틀버스 (0) | 2023.03.21 |
[파이썬] 프로그래머스: 카드뭉치 (0) | 2023.03.21 |
[파이썬] 프로그래머스: 과일 장수 (0) | 2023.03.21 |
[파이썬] 프로그래머스: 삼총사 / 조합 (0) | 2023.03.20 |