[3차] 파일명 정렬

발자·2023년 6월 9일
0

programmers

목록 보기
32/34

문제

def solution(files):
    # {file:[head, number]}
    file_dic = dict()
    for file in files:
        head, number, tail = '', '', ''
        number_check = False
        for idx in range(len(file)):
            # 처음으로 숫자가 나오기 시작할 때부터 number 저장
            if file[idx] in '0123456789':
                number += file[idx]
                number_check = True
            # 숫자가 나오기 전까지 head 저장
            elif not number_check:
                head += file[idx].upper()
            # 나머지 tail이 나오면 저장하고 break
            else:
                tail = file[idx:]
                break
            
        # 딕셔너리에 담기, tail은 상관없음!
        file_dic[file] = [head, int(number)]
    # head와 number를 기준으로 정렬하기
    file_dic = dict(sorted(file_dic.items(), key = lambda x : x[1]))
    
    # key만 꺼내기, *** list로 묶지 않으면 오류남!
    answer = list(file_dic.keys())
    return answer

0개의 댓글