본문 바로가기
Python/코테 연습

[2018 KAKAO BLIND RECRUITMENT] [3차] 파일명 정렬

by soojitasan 2024. 8. 13. 09:13
## 🔒 문제. 파일명 정렬
import re

def solution(files):
    answer = []
    file_dict = {}

    ## 입력받은 원본 파일명에서 필요한 데이터 분리 및 추출 --> ★ 파일명 정렬 기준
    ## head, number, 원본 입력 순서
    for txt in files:
        num = int(re.findall(r"[0-9]+", txt)[0])
        hd_tmp = txt[:txt.index(re.findall(r"[0-9]+", txt)[0])]
        hd = hd_tmp.lower()
        ord = files.index(txt)

        file_dict[txt] = [hd, num, ord]

    ## 정렬 순서 적용
    ### 1. HEAD 사전순 (대소문자 구분 X)
    ### 2. NUMBER 숫자순
    ### 3. 원래 입력 순서 유지
    
    answer = file_dict
    
    '''딕셔너리'''
    temp = sorted(file_dict.items(), key = lambda x: (x[1][0], x[1][1], x[1][2]))
    answer = [k for k, v in temp] 

    ''' 리스트 변환 .. 버려
    temp = list(file_dict.items())
    temp = sorted(temp, key = lambda x: (x[1][1][0], x[1][1][1], x[1][1][2]))
    #answer = temp[1]
    #answer = [i[0] for i in temp] 
    '''

    return answer