알고리즘/프로그래머스
2018 KAKAO BLIND RECRUITMENT- 파일명 정렬, 파이썬
그레고리력
2021. 3. 9. 22:06
문제
요구능력
- 레벨 2
- 문자열 처리
- 구현
풀이
- 어려운 편은 아님
- files 배열을 돌며 HEAD부분과 숫자 부분, 문자열에 담긴 순서를 뽑아 file_lst에 넣어준다.
- 문제 요구 조건에 따라 정렬을 해준 후 해당 인덱스에 따라 files에서 문자열을 answer에 저장해준다.
- 숫자부분을 뽑아내는 while 부분에서 런타임에러가 나지 않도록 주의(파이썬스럽지 않은 코드다, 개선해야겠다)
코드
def is_num(s) :
if '0' <= s <= '9' :
return True
return False
def solution(files):
file_lst = []
for idx, file in enumerate(files) :
for i, c in enumerate(file) :
if is_num(c) :
H = file[:i].lower()
j = 0
while j+i < len(file) and is_num(file[j+i]) and j <= 5:
j+=1
N = int(file[i:i+j])
break
file_lst.append([H,N,idx])
file_lst.sort()
answer = []
for f in file_lst:
answer.append(files[f[2]])
return answer