문제 출처
https://leetcode.com/problems/reorder-data-in-log-files/
문제 설명
로그를 재정렬하라. 기준은 다음과 같다.
- 로그의 가장 앞 부분은 식별자다.
- 문자로 구성된 로그가 숫자 로그보다 앞에 온다.
- 식별자는 순서에 영향을 끼치지 않지만, 문자가 동일할 경우 식별자 순으로 한다.
- 숫자 로그는 입력 순서대로 한다.
문제 풀이
class Solution:
def reorderLogFiles(self, logs: List[str]) -> List[str]:
letters= [] # 문자가 나오는 문장을 저장하기 위한 리스트
digits = [] # 숫자가 나오는 문장을 저장하기 위한 리스트
for log in logs: # 입력 str 중 1개의 str씩 살펴보면서
split = log.split(' ') # 띄어쓰기 기준으로 split한다.
if split[1].isdigit(): # 첫 번째는 식별자이므로 두 번째 문자가 숫자면
digits.append(log) # digits 리스트에 log를 추가한다.
else: # 두 번째 문자가 문자라면
letters.append(log) # letters 리스트에 log를 추가한다.
# letters를 정렬한다.
# lambda x를 기준으로 정렬
letters.sort(key=lambda x: (x.split(' ')[1:],x.split(' ')[0]))
ans = letters + digits # letters와 digits를 추가
return ans
'알고리즘' 카테고리의 다른 글
[알고리즘] 배열-두 수의 합 - Jungyu Ko (0) | 2022.04.23 |
---|---|
[알고리즘] 문자열 조작-그룹 애너그램 - Jungyu Ko (0) | 2022.03.20 |
[알고리즘] 문자열 조작-가장 흔한 단어 - Jungyu Ko (0) | 2022.03.20 |
[알고리즘] 문자열조작-문자열 뒤집기 - Jungyu Ko (0) | 2022.03.20 |
[알고리즘] 문자열 조작-유효한 팰린드롬 - Jungyu Ko (0) | 2022.03.20 |