본문 바로가기

Algorithm

[LeetCode] Python - 937. Reorder Data in Log Files

https://leetcode.com/problems/reorder-data-in-log-files/

 

Reorder Data in Log Files - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

생각

파이썬에서는 sort에 key값을 지정하여 동일 조건일때 후순위 조건을 필터링 할 수 있다.

따라서 문자로그를 정렬할때 첫번째 기준으로 식별자를 제외한 나머지 문자를 사전순으로 정렬하고, 나머지 문자가 모두 동일하다면 식별자를 기준으로 정렬한다는 조건을 주었다.

 

Python Code

class Solution:
    def reorderLogFiles(self, logs: List[str]) -> List[str]:
        #식별자 : 첫번째 문자
        #문자로그 : 식별자 제외하고 모든 단어가 소문자
        #숫자로그 : 식별자 제외하고 모든 단어가 숫자
        
        #1. 문자로그는 숫자로그보다 먼저 나옴
        #2. 문자로그는 내부가 사전순으로 정렬, 내용물이 같으면 식별자 순으로 정렬
        
        letters = []
        digits = []
        
        for log in logs:
            if log[-1].isalpha() :
                letters.append(log)
            else:
                digits.append(log)
        
        letters.sort(key=lambda x:(x.split()[1:], x.split()[0]))
        
        return letters+digits