Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코딩테스트
- 구현
- dict
- 딕셔너리
- 가상메모리
- 힙
- 운영체제
- 스택
- BFS
- 수학
- 백준
- 가상메모리 관리
- DP
- MYSQL
- BOJ
- 프로그래머스
- 파이썬
- 그리디
- 다익스트라
- dfs
- 다이나믹 프로그래밍
- N과M
- 브루트포스
- level3
- level0
- programmers
- 재귀
- level2
- level1
- python
Archives
- Today
- Total
동캄의 코딩도장
프로그래머스 level2 [ [3차] 파일명 정렬] 파이썬 본문
https://programmers.co.kr/learn/courses/30/lessons/17686
코딩테스트 연습 - [3차] 파일명 정렬
파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램
programmers.co.kr
#프로그래머스 [3차] 파일명 정렬
def solution(files):
answer = []
lst=[]
for file in files:
for i in range(len(file)):
if file[i].isdigit():
break
for j in range(5):
if (i+j)<len(file) and file[i+j].isdigit():
continue
else:
j+=i
break
else:
j=i+5
s=[file[:i],file[i:j],file[j:]]
lst.append(s)
lst.sort(key=lambda x:(x[0].upper(),int(x[1])))
for val in lst:
answer.append(''.join(val))
return answer
lst 객체를 생성하고, file을 하나씩 불러와서 처음으로 숫자가 있는 index값을 i로 저장한다. 그 뒤, j를 5번 반복하며, 문자가 있는지 or 5번을 넘기는지 or 배열이 끝나는지 확인하면서, 각 조건에따라 j값을 수정한다.
결과로 i는 HEAD의 끝 index, j는 Number의 끝 index를 가리킨다.
이점을 기준으로 나누고, lst를 저장후, sort한다.
'코테 > 프로그래머스' 카테고리의 다른 글
프로그래머스 level2 [문자열 압축] 파이썬 (0) | 2021.12.09 |
---|---|
프로그래머스 level2 [방문 길이] 파이썬 (0) | 2021.12.09 |
프로그래머스 level2 [1차 캐시] 파이썬 (0) | 2021.12.08 |
프로그래머스 level2 [구명보트] 파이썬 (0) | 2021.12.08 |
프로그래머스 level2 [가장 큰 수] 파이썬 (0) | 2021.12.08 |