Posts [알고리즘] 프로그래머스 - [3차] 파일명 정렬
Post
Cancel

[알고리즘] 프로그래머스 - [3차] 파일명 정렬


문제

[3차] 파일명 정렬


접근

문제에서 주어진대로 HEAD, NUMBER, TAIL을 분리해준다.
lambda를 이용하여 정렬해주고, 출력한다.


코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def solution(files):
    answer = []
    file = seperateFile(files)
    f = sorted(file, key = lambda x: (x[0], x[1]))
    for i in f:
        answer.append(i[3])
    return answer
def seperateFile(files):
    sepFile = []
    for file in files:
        isHead = True
        isNum = False
        head = ''
        num = ''
        tail = ''
        for idx, item in enumerate(file):
            if isHead:
                if '0' <= item <= '9':
                    isHead = False
                    isNum = True
                else:
                    head += item
            if isNum:
                if '0' <= item <= '9':
                    num+=item
                else:
                    tail = file[idx:]
                    break
        head = head.lower()
        num = int(num)
        sepFile.append([head, num, tail, file])
    return sepFile        


This post is licensed under CC BY 4.0 by the author.