[3차] 파일명 정렬

210723

'''
https://programmers.co.kr/learn/courses/30/lessons/17686
파일명 정렬
[풀이]
1. 정규식 사용. 이후 3개의 부분으로 분리 후 정렬. 공백도 문자라는 것을 주의
'''
import re
def solution(files):
    head = re.compile('[-. a-zA-z]+')
    number = re.compile('[0-9]+')

    newfiles = []
    for file in files:
        _, h = re.search(head, file).span()
        _, n = re.search(number, file).span()
        newfiles.append([file[:h], file[h:n], file[n:]])

    return [''.join(i) for i in sorted(newfiles, key=lambda f: (f[0].lower(), int(f[1])))]
'''
re.search 대신 findall을 사용할 수 있음
[-. a-zA-z]대신 \d를 사용할 수 있음
'''

Last updated

Was this helpful?