https://programmers.co.kr/learn/courses/30/lessons/17686
정규표현식을 활용해서 문제를 풀면 된다. 자주 사용되는 정규표현식은 미리미리 숙달해놔야겠다.
import re
from collections import defaultdict
def solution(files):
answer = []
head = re.compile('^\D+')
number = re.compile('\d{1,5}')
# tail = re.compile('^\D+\d{1,5}')
file_dict = defaultdict(list)
for file in files:
upper_file = file.upper()
fhead = head.findall(upper_file)[0]
fnumber = int(number.findall(upper_file)[0])
# ftail = upper_file[tail.match(upper_file).end():]
file_dict[file]+=[fhead,fnumber]
file_dict = sorted(file_dict.items(), key = lambda item: (item[1][0],item[1][1]))
for file in file_dict:
answer.append(file[0])
return answer
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스] 다음 큰 숫자 (Python) (0) | 2021.11.07 |
---|---|
[프로그래머스] n진수 게임 (Python) (0) | 2021.11.07 |
[프로그래머스] 압축 (Python) (0) | 2021.11.06 |
[프로그래머스] 가장 큰 정사각형 찾기 (Python) (0) | 2021.11.06 |
[프로그래머스] 방금 그곡 (Python) (0) | 2021.11.04 |
댓글