본문 바로가기
Coding Test/LeetCode

[LeetCode] 937. Reorder Log Files [Python(파이썬)]

'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀

문제 👉 <Reorder Data in Log Files - LeetCode>

1. 문제 (로그 파일 재정렬)

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

2. 풀이

  • 람다+ 연산자를 이용한 풀이
  1. isdigit()을 이용해 숫자와 문자 로그를 구분한다.
  2. 람다를 통해 식별자가 아닌 로그 부분을 먼저 정렬 후 식별자를 정렬한다.
  3. letters.sort(key=lambda x: (x.split()[1:], x.split()[0]))
    1. 문자열 [1:]를 통해 정렬을 하고, 동일한 경우 후순위로 식별자 [0]로 정렬한다.
  4. + 연산자를 통해 문자와 숫자 로그를 합친다.

3. 코드

  • 람다와 +연산자를 이용한 풀이
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)

        letters.sort(key=lambda x: (x.split()[1:], x.split()[0]))

        return letters + digits 
  • 결과 :
방식 Status Runtime Memory Language
람다와 +연산자 [Accepted] 32 ms 14.2 MB python3


References


🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋

댓글