코딩테스트 연습

[파이썬] 프로그래머스: 파일명 정렬 / 정규식, split, 구분자유지

콩콩(๓° ˘ °๓)♡ 2023. 3. 21. 16:10

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