Lv2 프로그래머스(Programmers)[Python][파이썬] 파일명 정렬

"""
출처:프로그래머스,
https://school.programmers.co.kr/learn/courses/30/lessons/17686
"""

# 풀이 과정
def solution(files):
f = files
from collections import deque

check = []

for i in f:
all_new = [] # head, middle, tail 전부 들어감

# 세 부분 나누기

head = []
middle = []
tail = []

i = deque(list(i))
part = "head"

while i:
k = i.popleft()

if k.isdigit() == False and part == "head":
head.append(k)

elif k.isdigit() == True and part == "head":
all_new.append(list(head))
middle = []
middle.append(k)
part = "middle"

elif k.isdigit() == True and part == "middle":
middle.append(k)

elif k.isdigit() == False and part == "middle":
tail.append(k)
tail += list(i)
all_new.append(list(middle))
all_new.append(list(tail))
break

if len(tail) == 0:
all_new.append(list(middle))
all_new.append([])

check.append(all_new)

check.sort(key=lambda x: (("".join(x[0]).upper()), int("".join(x[1]))))

final = []

for a, b, c in check:
A = "".join(a)

B = "".join(list(map(str, b)))

C = "".join(list(map(str, c)))

final.append(A + B + C)
return final