본문 바로가기

Programming/Programmers

[프로그래머스/Python] 파일명 정렬 (문자열처리(반복/정규식)

 

코딩테스트 연습 - [3차] 파일명 정렬

파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램

programmers.co.kr

1. 반복을 이용한 문자열 처리

 

def solution(files):
    answer = []
    idx=0
    for f in files:
        f = f.lower()
        H = ""
        for i in range(len(f)):
            if f[i].isdigit():
                f = f[i:]
                break
            else:
                H += f[i]

        N = ""
        for i in range(len(f)):
            if f[i].isdigit()==False:
                f = f[i:]
                break
            else:
                N += f[i]
        T = f
        answer.append([idx,H,N,T])
        idx +=1
    
    answer.sort(key=lambda x: (x[1], int(x[2]), x[0]))
    
    ans = []
    for tup in answer:
        ans.append(files[tup[0]])
            

    return ans

 

2. 정규식을 이용한 문자열 처리

 

import re
def solution(files):

    answer = [re.split(r"([0-9]+)", f) for f in files]
    answer.sort(key= lambda x: (x[0].lower(), int(x[1])))

    return ["".join(s) for s in answer]