본문 바로가기

PS/프로그래머스

[프로그래머스 LV 2] 파일명 정렬 (파이썬/python)

728x90

https://programmers.co.kr/learn/courses/30/lessons/17686

 

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

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

programmers.co.kr

 

 

isdigit( ) 함수로 문자열이 숫자인지 아닌지 판단했다

숫자면 True 반환 

isalpha( )도 있는데 이건 문자열이 알파벳인지 알려줌

 

str_lilst에 원본도 같이 넣어서 원본을 출력해줄 수 있게 했다

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
33
def solution(files):
    answer = []
    str_list = []
    for f in files:
        # 각 문자열마다 head와 number부분으로 나눔
        # 처음 숫자가 나오는 부분까지 head
        # 숫자 이후 처음 문자가 나오는 부분까지 number
        head = ''
        number = ''
 
        for s in f:
            if not s.isdigit():
                head += s
            else:
                break
 
        for s in f[len(head):]:
            if s.isdigit():
                number += s
            else:
                break
 
        # 리스트에 대문자로 바꾼 head, number,원형 문자열을 넣어준다
        # 문자열에 int 함수를 사용하면 앞에있는 0은 자동으로 지워짐!
        str_list.append([head.upper(), int(number), f])
 
    # 정렬해준다. 문자 오름차순, 숫자 오름차순
    str_list = sorted(str_list, key=lambda x: (x[0], x[1]))
 
    for s in str_list:
        answer.append(s[2])
 
    return answer
cs
728x90