본문 바로가기
프로그래머스/Lv.2

2018 KAKAO BLIND RECRUITMENT > 파일명 정렬 - Python, 정규식

by 아찌방 2025. 1. 7.

 

 

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

코드 & 풀이

 

import re
def solution(files):
    cuted_files = []
    
    for i, file in enumerate(files):
        cuted_file = re.findall(r'[^0-9]+|\d+',file) #문자와 숫자를 기준으로 분리
        
        HEAD = cuted_file[0].lower() # HEAD 소문자, 대문자 구분없으니까 다 소문자로
        NUMBER = int(cuted_file[1]) # Number
        cuted_files.append([i, HEAD, NUMBER])
        
    cuted_files = sorted(cuted_files, key=lambda x : (x[1], x[2]))
    
    return [files[file[0]] for file in cuted_files]

 

 

 

정규식을 통해 문자와 숫자를 기준으로 주어지는 문자열을 분리하고

 

인덱스, HEAD, NUMBER를 저장해두어

 

HEAD => NUMBER 순으로 정렬을 진행합니다.

 

그리고 정렬된 리스트에서 원래 인덱스를 받아와서 출력하면 끝입니다.

 

처음에

 

정규식을 [a-zA-Z-] 이런 식으로 하니까

 

컴파일 에러가 나와서

 

HEAD에는 숫자는 안나온다길래

 

[^0-9]로 바꾸니 잘 작동 됐습니다.

 

다음에 또 봐요

 

728x90