본문 바로가기
Programming/Programmers

[프로그래머스] 파일명 정렬 (Python)

by 데이터현 2021. 11. 7.

https://programmers.co.kr/learn/courses/30/lessons/17686

 

코딩테스트 연습 - [3차] 파일명 정렬

파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램

programmers.co.kr

 

정규표현식을 활용해서 문제를 풀면 된다. 자주 사용되는 정규표현식은 미리미리 숙달해놔야겠다.

 

import re
from collections import defaultdict
def solution(files):
    answer = []
    head = re.compile('^\D+')
    number = re.compile('\d{1,5}')
    # tail = re.compile('^\D+\d{1,5}')

    file_dict = defaultdict(list)

    for file in files:
        upper_file = file.upper()
        fhead = head.findall(upper_file)[0]
        fnumber = int(number.findall(upper_file)[0])
        # ftail = upper_file[tail.match(upper_file).end():]
        file_dict[file]+=[fhead,fnumber]

    file_dict = sorted(file_dict.items(), key = lambda item: (item[1][0],item[1][1]))

    for file in file_dict:
        answer.append(file[0])
        
    return answer

댓글