파일명 정렬
주어진 문자열을 주어진 조건에 맞게 잘라주면 된다.
나는 우선
flag
와isdigt()
을 사용하여, 처음으로 등장하는 숫자까지를 잘라서 HEAD로 저장하고,그 다음 다시 알파벳이 나올 때 까지를 잘라서 NUMBER로 저장하고 나머지를 TAIL로 저장한다. 근데 이 때 TAIL은 아무 글자도 없을 수 있기 때문에, 예외처리를 해준다.
이렇게 HEAD, NUMBER, TAIL로 나누어서 저장을 했으면,
sort와 lambda식을 이용하여 정렬해주면 끝!👨💻 소스 코드
def solution(files): answer = [] for file in files: flag = True startNum = 0 tmp = [] for i in range(len(file)): if flag and file[i].isdigit(): tmp = [file[:i]] startNum = i flag = False if not flag: if not file[i].isdigit(): tmp.append(file[startNum:i]) tmp.append(file[i:]) break elif i == len(file) - 1: tmp.append(file[startNum:]) break answer.append(tmp) answer.sort(key=lambda x: (x[0].lower(), int(x[1]))) return [''.join(a) for a in answer]