Algorithms/LeetCode
LeetCode #937 Reorder Data in Log Files
8iggy
2021. 4. 24. 17:36
읽기 전
- 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
- 개인적으로 배운 점을 정리한 글입니다.
문제 링크
LeetCode #937 Reorder Data in Log Files
문제 풀이
let 로그는 항상 dig 로그보다 앞에있고 사전식으로 내용 기준 정렬해야 한다. 그리고 문자가 같을 시 식별자 순으로 나열하면 된다. dig 로그는 입력 순서 그대로 유지한다고 명시되어 있다. 따라서, let과 dig 로그를 서로 분리한 뒤 let 로그를 정렬한 뒤 정렬된 let 로그 + dig 로그를 반환하면 된다.
python 코드
class Solution:
def reorderLogFiles(self, logs: List[str]) -> List[str]:
dig, let = [], [] # dig와 let 로그 분리
for log in logs:
if log.split()[1].isdigit(): # 식별자 다음 값이 숫자면
dig.append(log) # dig 목록에 추가
else: # 숫자가 아니면
let.append(log) # let 목록에 추가
let.sort(key=lambda x: (x.split()[1:], x.split()[0]))
# let 로그는 사전식으로 정렬하고 문자가 같으면 식별자 순으로 정렬
# lambda x를 정의한 후 정렬 기준으로 (식별자 다음 값, 식별자) 입력
# 위 코드대로 람다표현식을 사용하면 정렬 기준의 우선순위를 둘 수 있다.
return let + dig