(LeetCode)937. 로그 파일 재정렬

문제

Reorder Data in Log Files - LeetCode

아이디어

  • 람다표현식을 이용한 정렬과 + 연산자를 사용

코드

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개의 키를 람다 표현식으로 정렬
				# x.split()[1:] -> 식별자를 제외한 나머지를 기준으로 정렬
				# x.split()[0] -> 로그가 동일한경우 식별자를 기준으로 정렬
        letters.sort(key=lambda x: (x.split()[1:], x.split()[0]))
				# 문자로그를 앞에 숫자로그를 뒤에 놓고 합침
        return letters + digits

배운점

  • 람다 표현식을 이용한 정렬은 복잡한 리스트 정렬을 쉽게 할 수 있게 해준다. 람다 표현식과 리스트 컴프리헨션을 중 어떤것을 사용하는것이 문제풀이에 도움이 되는지 감을 잡는게 포인트일듯