ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [리트코드] 937 _ 로그 파일 재정렬
    파이썬 2022. 1. 12. 13:25

    문제 : 로그를 재정렬하라. 기준은 다음과 같다.

    1. 로그의 가장 앞 부분은 식별자다.
    2. 문자로 구성된 로그가 숫자 로그보다 앞에 온다.
    3. 식별자는 순서에 영향을 끼치지 않지만, 문자가 동일할 경우 식별자 순으로 한다.
    4. 숫자 로그는 입력 순서대로 한다.

    예시 : 

    Example 1:

    Input: logs = ["dig1 8 1 5 1","let1 art can","dig2 3 6","let2 own kit dig","let3 art zero"]
    Output: ["let1 art can","let3 art zero","let2 own kit dig","dig1 8 1 5 1","dig2 3 6"]
    Explanation:
    The letter-log contents are all different, so their ordering is "art can", "art zero", "own kit dig".
    The digit-logs have a relative order of "dig1 8 1 5 1", "dig2 3 6".

    Example 2:

    Input: logs = ["a1 9 2 3 1","g1 act car","zo4 4 7","ab1 off key dog","a8 act zoo"]
    Output: ["g1 act car","a8 act zoo","ab1 off key dog","a1 9 2 3 1","zo4 4 7"]

    해결 : 

    class Solution:
        def reorderLogFiles(self, logs: List[str]) -> List[str]:
            letters=[]
            digits=[]
            for log in logs:
                if log.split()[1].isdigit(): # .split() 문자열 분리
                    digits.append(log)
                else: 
                    letters.append(log)
            
            letters.sort(key=lambda x : (x.split()[1:], x.split()[0]))
            # List.sort() 정렬 메서드, key를 기준으로 오름차순 정렬 
            return letters + digits

    '파이썬' 카테고리의 다른 글

    [이코테] 1이 될 때까지  (0) 2022.01.18
    [리트코드] 125 _ 유효한 팰린드롬  (0) 2022.01.12
    [Python] 리스트  (0) 2022.01.10

    댓글

Designed by Tistory.