티스토리 뷰
728x90
반응형
문제
https://programmers.co.kr/learn/courses/30/lessons/17686
코딩테스트 연습 - [3차] 파일명 정렬
파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램
programmers.co.kr
코드
def solution(files):
answer = []
for i in files:
HEAD, NUMBER, TAIL = '','',''
number_check = False
for j in range(len(i)):
if i[j].isdigit():
NUMBER += i[j]
number_check = True
elif not number_check:
HEAD += i[j]
else:
TAIL += i[j:]
break
answer.append((HEAD, NUMBER, TAIL))
answer.sort(key=lambda x: (x[0].upper(), int(x[1]))) # HEAD 우선, NUMBER 차선으로 정렬
return [''.join(t) for t in answer]
isdigit() 함수를 이용해 문자열 구성이 숫자인지 확인하여 숫자일 경우에는 NUMBER에 더해주고 number_check를 True로 바꿔준다.
number_check가 False일 경우에는 문자열이 숫자가 아니고 NUMBER가 나오기 전이기 때문에 HEAD에 더해준다
number_check가 True이고 NUMBER다음이면 모두 TAIL에 넣어준다.
lambda를 사용해 HEAD를 기준으로 정렬해주고 HEAD가 같을 경우에는 NUMBER를 기준으로 정렬해준다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level1, 키패드 누르기 (Python) (0) | 2021.06.17 |
---|---|
[프로그래머스] Level2, 3차 압축 (Python) (0) | 2021.06.16 |
[프로그래머스] Level2, 캐시 (Python) (0) | 2021.06.14 |
[프로그래머스] Level2, 문자열 압축 (Python) (0) | 2021.06.13 |
[프로그래머스] Level2, 괄호 변환 (Python) (0) | 2021.06.13 |
댓글