일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자료구조
- 백준
- data structure
- 운영체제
- algogritim
- network
- 감상문
- c++
- BOJ
- 문제풀이
- SW Expert Academy
- language
- Computer Science
- 독서
- 재테크/투자
- algorithm
- 법의학
- swea
- 프로그래머스
- Database
- LeetCode
- Programmers
- 네트워크
- D3
- D2
- cs
- OS
- db
- 알고리즘
- 데이터베이스
Archives
- Today
- Total
선택은 나의 것
[프로그래머스] 파일명 정렬 (python) 본문
문제
Programmers 2018 KAKAO BLIND RECRUITMENT : [3차] 파일명 정렬
코딩테스트 연습 - [3차] 파일명 정렬
파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램��
programmers.co.kr
접근
문자열은 조건에 맞게 HEAD, NUMBER, TAIL 부분으로 나눈다. 이때 중간에 숫자 영역인 NUMBER을 기준으로 split으로 잘라준다. python의 문자열 처리에 대해서 궁금한 사람들은 파이썬 프로그래밍 입문서를 참고하길 바란다. 정리가 매우 잘 되어있어 많은 도움을 받았다.
다음으로 대소문자 구분 없이 HEAD 문자에 따라 정렬하되 같은 값의 HEAD를 가지고 있으면 NUMBER에 따라 정렬해준다. python의 sorted에 대해 자세히 알아보고 싶다면 흠시 님의 글을 참고하길 바란다.
코드
import re
def solution(files):
file = [re.split(r"([0-9]+)", i) for i in files]
# print(file)
s_file = sorted(file, key = lambda x: (x[0].lower(), int(x[1])))
answer = []
for i in s_file :
answer.append("".join(i))
return answer
'☽ Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 중성화 여부 파악하기 (SQL) (0) | 2020.08.10 |
---|---|
[프로그래머스] 카카오프렌즈 컬러링북 (0) | 2020.05.29 |
[프로그래머스] 튜플 (0) | 2020.05.27 |
[프로그래머스] 리틀 프렌즈 사천성 (0) | 2020.05.26 |
[프로그래머스] 셔틀버스 (python) (0) | 2020.05.22 |
Comments