title: "[프로그래머스] [3차] 파일명 정렬 Python 파이썬 해설 (Level 2) - 이도훈"
cleanUrl: "programmers/17686"
description: "프로그래머스 Level 2 문제 [[3차] 파일명 정렬]의 풀이를 정리합니다."

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

def headnumber(f):
    head, number, i = [], [], 0
    while not f[i].isdigit():
        head.append(f[i])
        i += 1
    while i < len(f) and f[i].isdigit():
        number.append(f[i])
        i += 1
    
    return ''.join(head), int(''.join(number))
    
def solution(files):
    newfiles = []
    for f in files:
        head, number = headnumber(f)
        newfiles.append((head.lower(), number, f))
        
    # HEAD와 NUBMER를 기준으로만 정렬합니다.
    newfiles.sort(key=lambda x: (x[0], x[1]))
    
    return [tup[2] for tup in newfiles]

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges