🔊
파이썬 알고리즘 인터뷰
책을 참고했습니다.
- 로그의 앞 부분은 식별자이다.
- 문자로그는 숫자로그보다 항상 앞에 존재한다.
- 문자가 동일할 경우 식별자를 기준으로 정렬한다.
- 문자로그면 문자만, 숫자로그면 숫자만을 가진다.
- 숫자로그는 입력 그대로를 유지한다.
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"]
class Solution:
def reorderLogFiles(self, logs: List[str]) -> List[str]:
digit = []
letter = []
for log in logs:
if log.split()[1].isdigit():
digit.append(log)
else:
letter.append(log)
letter.sort(key=lambda x: (x.split()[1:], x.split()[0]))
return letter + digit
letter.sort(key=lambda x: (x.split()[1:], x.split()[0]))