[2018 카카오 블라인드] [3차] 파일명 정렬
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/17686
문제 설명
문제 접근 방법
1. file 값을 HEAD, NUMBER, TAIL 부분으로 파싱한다.
-> 숫자 부분을 기준으로 HEAD, NUMBER, TAIL 부분을 나눈다. 숫자를 판별하기 위해서 isdigit() 함수를 사용하였다.
2. HEAD(단, 대소문자 구분 X), NUMBER(단, 0000이나 0101 등 문자형 숫자도 가능) 순서대로 정렬한다.
-> key=lambda x: (x[0].upper(), int(x[1])) 방법으로 python의 sort 함수를 사용하여 구현하였다.
풀이 코드
def solution(files):
answer = []
for file in files:
head, number, tail = '', '', ''
head_complete = False
num_idx = 0
for idx, c in enumerate(file):
if c.isdigit() and not head_complete:
head = file[:idx]
number = file[idx:]
head_complete = True
num_idx = idx
elif not c.isdigit() and head_complete:
number = file[num_idx:idx]
tail = file[idx:]
break
answer.append([head, number, tail])
answer.sort(key=lambda x: (x[0].upper(), int(x[1])))
return [''.join(a) for a in answer]
Author And Source
이 문제에 관하여([2018 카카오 블라인드] [3차] 파일명 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sewonkim/2018-카카오-블라인드-3차-파일명-정렬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)