프로그래머스, [3차] 파일명 정렬, 17686
2024. 9. 3. 01:01ㆍETC/Algorithm
[유형]
정렬
[문제링크]
https://school.programmers.co.kr/learn/courses/30/lessons/17686?language=python3
[요약]
파일명을 세 부분으로 나눈 후, 파일명을 정렬한다.
파일명은 우선 HEAD 부분을 기준으로 사전 순으로 정렬한다. 이때, 문자열 비교 시 대소문자 구분을 하지 않는다. MUZI와 muzi, MuZi는 정렬 시에 같은 순서로 취급된다.
파일명의 HEAD 부분이 대소문자 차이 외에는 같을 경우, NUMBER의 숫자 순으로 정렬한다. 9 < 10 < 0011 < 012 < 13 < 014 순으로 정렬된다. 숫자 앞의 0은 무시되며, 012와 12는 정렬 시에 같은 같은 값으로 처리된다.
두 파일의 HEAD 부분과, NUMBER의 숫자도 같을 경우, 원래 입력에 주어진 순서를 유지한다. MUZI01.zip과 muzi1.png가 입력으로 들어오면, 정렬 후에도 입력 시 주어진 두 파일의 순서가 바뀌어서는 안 된다.
[문제풀이]
정규식을 활용한다.
import re
def solution(files):
temp = [re.split(r"([0-9]+)",s) for s in files]
temp.sort(key = lambda x: (x[0].lower(),int(x[1])))
return [''.join(t) for t in temp]
'ETC > Algorithm' 카테고리의 다른 글
백준, 듣보잡, 1764 (0) | 2024.09.04 |
---|---|
백준, 수 찾기, 1920 (0) | 2024.09.04 |
백준, 좌표 정렬하기2, 11651 (0) | 2024.09.03 |
백준, 나이순 정렬, 10814 (0) | 2024.09.03 |
백준, 스타트와 링크, 14889 (2) | 2024.08.30 |