프로그래머스/Lv.2
2018 KAKAO BLIND RECRUITMENT > 파일명 정렬 - Python, 정규식
아찌방
2025. 1. 7. 11:37
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