문제
접근
문제에서 주어진대로 HEAD, NUMBER, TAIL을 분리해준다.
lambda를 이용하여 정렬해주고, 출력한다.
코드
- 파이썬 코드
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
32
def solution(files):
answer = []
file = seperateFile(files)
f = sorted(file, key = lambda x: (x[0], x[1]))
for i in f:
answer.append(i[3])
return answer
def seperateFile(files):
sepFile = []
for file in files:
isHead = True
isNum = False
head = ''
num = ''
tail = ''
for idx, item in enumerate(file):
if isHead:
if '0' <= item <= '9':
isHead = False
isNum = True
else:
head += item
if isNum:
if '0' <= item <= '9':
num+=item
else:
tail = file[idx:]
break
head = head.lower()
num = int(num)
sepFile.append([head, num, tail, file])
return sepFile