반응형
글에 앞서서 1000명 이상 읽어주신 모든 분들에게 감사의 말씀드립니다.
부족한 지식을 보충하고 글을 잘 쓸 수 있는 사람이 되고자 했던 블로그 활동을
벌써 1000분께서 읽어주신 것이 너무나도 신기하네요
누군가가 저의 글을 보고 있다고 생각하니 더 잘 써서 내가 말하고자 하는 내용을
정확하게 알려드리고 싶은 마음이 큽니다.
포인트
- 문제 자체가 생각보다 심플합니다. 파일명 정렬을 숫자 순으로 하고 싶다가 포인트입니다.
- 이에 세부 요소로 먼저 HEAD를 사전 순으로 정렬하고
- 어떠한 길이의 숫자든 같은 숫자를 의미하면 동일한 값으로 생각하고
- 이 모든 조건들이 동일하다면, 들어온 순서를 유지하는 그런 알고리즘을 짜는 것이 문제입니다.
🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다.
python
def solution(files: list) -> list:
answer, vc = [], []
for line in files:
index = 0
for char in line:
if char.isnumeric():
break
index += 1
# HEAD
bindex = index
for char in line[index:]:
if not char.isnumeric():
break
bindex += 1
# NUMBER
vc.append([line[:index], line[index:bindex], line[bindex:], len(vc)])
# 맨 마지막에는 들어온 순서를 저장한다.
# TAIL
vc.sort(key=lambda x: (x[0].lower(), int(x[1]), x[3]))
# 소문자 고려, 어떤 것이 와도 무조건 숫자, 이것이 전부 같을 경우 들어온 순서
for head, num, tail, index in vc:
answer.append(head + num + tail)
return answer
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 방금그곡 (0) | 2021.05.05 |
---|---|
[알고리즘] 후보키 (0) | 2021.05.05 |
[알고리즘] N진수 게임 (0) | 2021.05.04 |
[알고리즘] 문자열 압축 (0) | 2021.05.03 |
[알고리즘] Running Sum of 1d Array (0) | 2021.05.03 |
댓글