728x90
https://programmers.co.kr/learn/courses/30/lessons/17686
isdigit( ) 함수로 문자열이 숫자인지 아닌지 판단했다
숫자면 True 반환
isalpha( )도 있는데 이건 문자열이 알파벳인지 알려줌
str_lilst에 원본도 같이 넣어서 원본을 출력해줄 수 있게 했다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
def solution(files):
answer = []
str_list = []
for f in files:
# 각 문자열마다 head와 number부분으로 나눔
# 처음 숫자가 나오는 부분까지 head
# 숫자 이후 처음 문자가 나오는 부분까지 number
head = ''
number = ''
for s in f:
if not s.isdigit():
head += s
else:
break
for s in f[len(head):]:
if s.isdigit():
number += s
else:
break
# 리스트에 대문자로 바꾼 head, number,원형 문자열을 넣어준다
# 문자열에 int 함수를 사용하면 앞에있는 0은 자동으로 지워짐!
str_list.append([head.upper(), int(number), f])
# 정렬해준다. 문자 오름차순, 숫자 오름차순
str_list = sorted(str_list, key=lambda x: (x[0], x[1]))
for s in str_list:
answer.append(s[2])
return answer
|
cs |
728x90
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV 2] 방문길이 (파이썬/python) (0) | 2021.06.11 |
---|---|
[프로그래머스 LV 2] 가장 큰 정사각형 찾기 (파이썬/python) (0) | 2021.06.11 |
[프로그래머스 LV 2] 압축 (파이썬/python) (0) | 2021.06.11 |
[프로그래머스 LV 2] 괄호 변환 (파이썬/python) (0) | 2021.06.11 |
[프로그래머스 LV 2] n진수 게임 (파이썬/python) (0) | 2021.06.11 |