파이썬 알고리즘-122 (프로그래머스) 파일명 정렬

jiffydev·2021년 3월 15일
0

Algorithm

목록 보기
129/134

코드

def solution(files):
    answer = []
    res=[]
    for f in files:
        head=''
        number=''
        for i in range(len(f)):
            if f[i].isdecimal():
                number+=f[i]
            elif not f[i].isdecimal():
                if number!='':
                    break
                head+=f[i]
                
        # TAIL이 없을 때
        if i==len(f)-1:
            res.append([head,number])
        else:
            res.append([head,number,f[i:]])
            
    res=sorted(res, key=lambda x: (x[0].lower(),int(x[1])))
    
    for s in res:
        answer.append(''.join(s))
    return answer

다른 사람의 풀이

import re

def solution(files):
    # NUMBER 순으로 우선 정렬
    a = sorted(files, key=lambda file : int(re.findall('\d+', file)[0]))
    # NUMBER 순으로 정렬 후 split()[0]으로 HEAD 부분을 찾아 정렬
    b = sorted(a, key=lambda file : re.split('\d+', file.lower())[0])
    return b
profile
잘 & 열심히 살고싶은 개발자

0개의 댓글