알고리즘

[algorithm] leetcode 937 - Reorder Data in Log Files (파이썬)

hyuuny 2022. 3. 11. 10:24

문제


로그를 재정렬하라. 기준은 아래와 같다.

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

leetcode 937 - Reorder Data in Log Files


코드

class Solution:
    def reorderLogFiles(self, logs: List[str]) -> List[str]:
        letters, digits = [], []
        for log in logs:
            if log.split()[1].isdigit():
                digits.append(log)
            else:
                letters.append(log)

        # 2개의 키를 람다 표현식으로 정렬하자
        letters.sort(key=lambda x: (x.split()[1:], x.split()[0]))
        return letters + digits