728x90
🔗 문제링크
📂 분류
구현
정렬
💡 풀이
문자열 파싱 해서 해결하는 문제이다.
접근방식
- 파일을 한 문자씩 탐색하다가 숫자가 나온다면 현재 인덱스 전까지의 문자열을
head
에 저장하고 나머지는number
에 저장을 한다. number
문자열을 탐색하다가 숫자가 아닌 다른 문자가 나온다면 현재 인덱스 전까지의 문자열을 저장하고number
에 저장하고 나머지는tail
에 저장한다.- 문제 설명에
tail
은 정렬 기준이 아니기 때문에 제외하고 head -> number 순으로 정렬한다.
💻 코드
class File:
def __init__(self, filename, head, number, tail):
self.filename = filename
self.head = head
self.number = number
self.tail = tail
def solution(files):
file = []
for f in files:
number, tail, head = getFileSection(f)
file.append(File(f, head, number, tail))
file.sort(key=lambda x: (x.head, x.number))
return [''.join(i.filename) for i in file]
def getFileSection(file):
file = file.lower()
head, number, tail = '', '', ''
for i in range(len(file)):
if file[i].isdigit():
head = file[:i]
number = file[i:]
for j in range(len(number)):
if not number[j].isdigit():
number = number[:j]
tail = number[j:]
break
break
return int(number), tail, head
728x90
'Algorithm > 프로그래머스' 카테고리의 다른 글
[Python] 프로그래머스 Lv2 - [3차] n진수 게임 (2018 KAKAO BLIND RECRUITMENT) (0) | 2022.06.15 |
---|---|
[Python] 프로그래머스 Lv2 - 올바른 괄호 (0) | 2022.06.14 |
[Python] 프로그래머스 Lv2 - 양궁대회 (2022 KAKAO BLIND RECRUITMENT) (0) | 2022.06.10 |
[Java] 프로그래머스 Lv2 - [3차] 압축 (2018 KAKAO BLIND RECRUITMENT) (0) | 2022.06.09 |
[Java] 프로그래머스 Lv2 - 3 x n 타일링 (0) | 2022.06.02 |