로그를 재정렬하라. 기준은 다음과 같다.
ex)
input: ["digl 8 1 5 1", "letl art can", "dig2 3 6", "let2 own kit dig", "let3 art zero"]
output: ["letl art can", "let3 art zero", "let2 own kit dig", "digl 8 1 5 1", "dig2 3 6"]
파이썬의 split 메소드를 통하여 list에 있는 string을 파싱한 뒤, 조건에 맞게 sorting 및 정렬한다.
문자로 구성된 로그가 숫자 로그보다 앞에 와야 하므로, 서로를 구분해서 정리한 뒤, 마지막에 순서에 맞게 합쳐줄 수 있다.
# reorder.py
def reorderLogFiles(logs):
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
위의 코드에서 사용한 람다 함수는 식별자 없이 실행 가능한 함수를 말하며, 함수 선언 없이도 하나의 식으로 함수를 단순하게 표현할 수 있다.
위의 식에서 x가 함수의 입력값이며, : 이후의 부분이 return 값이 된다.