문제
요구능력
풀이
- 어려운 편은 아님
- 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