728x90
반응형
문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/17686
풀이:
def solution(files):
tmp = []
head, number, tail = '', '', ''
for file in files:
for i in range(len(file)):
if file[i].isdigit(): # 숫자가 나오면 그 이전은 무조건 HEAD, 이후는 NUMBER, TAIL로 다시 구분
head = file[:i]
number = file[i:]
for j in range(len(number)): # NUMBER와 TAIL 구분 (숫자 안나오면 TAIL)
if not number[j].isdigit():
tail = number[j:]
number = number[:j]
break
tmp.append([head, number, tail])
head, number, tail = '', '', ''
break
return [ ''.join(i) for i in (sorted(tmp, key=lambda x:(x[0].lower(), int(x[1]))))]
print(solution(["img12.png", "img10.png", "img02.png", "img1.png", "IMG01.GIF", "img2.JPG"]))
반응형
댓글