단순한 문자 코드 순이 아닌, 파일명에 포함된 숫자를 반영한 정렬 기능을 저장소 관리 프로그램에 구현하기로 했다.
0부터 99999 사이의 숫자로, 00000이나 0101 등도 가능하다.입력으로 배열 files가 주어진다.
files는 1000개 이하의 파일명을 포함하는 문자열 배열이다.muzi1.txt,MUZI1.txt,muzi001.txt,muzi1.TXT는 함께 입력으로 주어질 수 있다.)위 기준에 따라 정렬된 배열을 출력한다.
def solution(files):
answer = []
for file in files:
answer.append([file, getData(file)])
answer.sort(key = lambda x : (x[1][0],x[1][1]))
return [x[0] for x in answer]
def getData(file):
result, i = [], 0
for index, w in enumerate(file):
if '0'<=w<='9' and len(result) == 0:
result.append(file[:index].lower())
i = index
elif not '0'<=w<='9' and len(result) == 1:
result.append(int(file[i:index]))
i = index
break
if len(result) == 1:
result.append(int(file[i:]))
return result