Algorithm

프로그래머스) 파일명 정렬

주코식딩 2022. 5. 23. 06:06

문제 : https://programmers.co.kr/learn/courses/30/lessons/17686?language=python3 

 

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

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

programmers.co.kr

문제가 너무 길어 링크로..

 

 

header와 number부분을 확실하게 나누기만 하면 정렬을 해서 쉽게 풀 수 있는 문제다.

def solution(files):
    answer = []

    for i in range(len(files)):
        n_idx_s = -1
        n_idx_e = -1
        for j in range(len(files[i])):
            if files[i][j].isdigit():
                if n_idx_s < 0:
                    n_idx_s = j
            else:
                if n_idx_s >= 0 and n_idx_e < 0:
                    n_idx_e = j
                    break
        if n_idx_e < 0:
            n_idx_e = len(files[i])

        header = files[i][:n_idx_s]
        number = files[i][n_idx_s:n_idx_e]
        tail = files[i][n_idx_e:]

        answer.append([header,number,tail])

    answer.sort(key=lambda x:(x[0].lower(),int(x[1])))

    for i in range(len(answer)):
        answer[i] = "".join(answer[i])

    return answer

 

이 부분이 문제의 핵심이라고 생각한다. 

answer.sort(key=lambda x:(x[0].lower(),int(x[1])))

해당 링크의 내용을 응용했다.

https://ojy9612.tistory.com/33

 

python) 정렬에 lambda함수 활용하기

알고리즘 정렬 문제는 정렬 자체를 구현해야 하는 경우가 있는데 파이썬 정렬 함수에 lambda를 활용해서 구현 없이 쉽게 정렬하는 법에 대해 다뤄 보려고 한다. 두 번째 원소를 기준으로 정렬하는

ojy9612.tistory.com

 

'Algorithm' 카테고리의 다른 글

백준) 랜선 자르기  (0) 2022.05.30
LeetCode) Largest Number  (0) 2022.05.26
python) 정렬에 lambda함수 활용하기  (0) 2022.05.23
프로그래머스) 괄호 변환  (0) 2022.05.22
python) deepcopy와 [:](슬라이싱) 차이  (0) 2022.05.21