단순한 문자 코드 순이 아닌, 파일명에 포함된 숫자를 반영한 정렬 기능을 저장소 관리 프로그램에 구현하기로 했다.
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