Notice
Recent Posts
Recent Comments
Link
S E P H ' S
[Python] 파일명 정렬 본문
문제 보기
SK C&C 코테전에 이 문제를 봤더라면.. 풀었을 수 있었을 것 같다.
파이썬 정렬이 아직도 익숙치 않은걸 보니 더 많이 경험을 쌓아야 할 것 같다.
풀이
1. head, number, tail 세 부분으로 나눠지는 기준은
1-1. number가 나오기 전 까진 head이다.
1-2. number 뒤에 바로 숫자가 나오면 아직 number이다. tail에서 숫자가 나올 수도 있다고 했지만 적어도 문자나 공백 뒤에 올 것임.
2. 1의 기준으로 head, number, tail로 나눈 후, answer에 append.
3. answer를 sort 하는데 문제의 정렬 조건대로
3-1. head는 사전순으로 정렬. 대소문자 구별은 안함.
3-2. number는 int형으로 변환하고 오름차순 정렬.
3-3. tail은 입력 그대로.
def sol(files):
answer = []
for f in files:
head, number, tail = '', '', ''
number_check = False
for i in range(len(f)):
if f[i].isdigit():
number += f[i]
number_check = True
elif not number_check:
head += f[i]
else:
tail = f[i:]
break
answer.append((head, number, tail))
answer.sort(key=lambda x: (x[0].upper(), int(x[1])))
return [''.join(w) for w in answer]
'Algorithm > Programmers' 카테고리의 다른 글
[Python] 방금그곡 (0) | 2021.08.26 |
---|---|
[Python] 압축 (0) | 2021.08.26 |
[Python] 124 나라의 숫자 (0) | 2021.08.25 |
[Python] 소수 찾기 (0) | 2021.08.25 |
[Python] 가장 큰 정사각형 찾기 (0) | 2021.08.24 |