파일이름 뒤에 f를 붙혀 tail없는 예외를 없앤 후 head, number를 heap에 넣은 후 뽑아내며 정렬
from heapq import heappop, heappush
def solution(files):
answer = []
sort_arr = []
for pos, each_file in enumerate(files):
tmp = each_file + 'f'
flag = 0
for idx, char in enumerate(tmp):
if not flag and char.isdigit():
start = idx
flag = 1
elif flag and not char.isdigit():
end = idx
break
head, number = each_file[:start], each_file[start:end]
heappush(sort_arr, (head.lower(), int(number), pos))
while sort_arr:
h, n, p = heappop(sort_arr)
answer.append(files[p])
return answer
'practivceAlgorithm > programmers' 카테고리의 다른 글
[Programmers][Python][2021 카카오 인턴십] 거리두기 확인하기 (0) | 2021.11.14 |
---|---|
[Programmers][Python] KAKAO 2018 N진수 게임 (0) | 2021.11.07 |
[Programmers][Python] KAKAO 2018 방금그곡 (0) | 2021.11.04 |
[Programmers][Python] KAKAO 2018 압축 (0) | 2021.11.04 |
[Programmers][Python] KAKAO 2018 프렌즈 4블록 (0) | 2021.10.31 |