-
[리트코드] 937 _ 로그 파일 재정렬파이썬 2022. 1. 12. 13:25
문제 : 로그를 재정렬하라. 기준은 다음과 같다.
- 로그의 가장 앞 부분은 식별자다.
- 문자로 구성된 로그가 숫자 로그보다 앞에 온다.
- 식별자는 순서에 영향을 끼치지 않지만, 문자가 동일할 경우 식별자 순으로 한다.
- 숫자 로그는 입력 순서대로 한다.
예시 :
Example 1:
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"] Explanation: The letter-log contents are all different, so their ordering is "art can", "art zero", "own kit dig". The digit-logs have a relative order of "dig1 8 1 5 1", "dig2 3 6".
Example 2:
Input: logs = ["a1 9 2 3 1","g1 act car","zo4 4 7","ab1 off key dog","a8 act zoo"] Output: ["g1 act car","a8 act zoo","ab1 off key dog","a1 9 2 3 1","zo4 4 7"]
해결 :
class Solution: def reorderLogFiles(self, logs: List[str]) -> List[str]: letters=[] digits=[] for log in logs: if log.split()[1].isdigit(): # .split() 문자열 분리 digits.append(log) else: letters.append(log) letters.sort(key=lambda x : (x.split()[1:], x.split()[0])) # List.sort() 정렬 메서드, key를 기준으로 오름차순 정렬 return letters + digits
'파이썬' 카테고리의 다른 글
[이코테] 1이 될 때까지 (0) 2022.01.18 [리트코드] 125 _ 유효한 팰린드롬 (0) 2022.01.12 [Python] 리스트 (0) 2022.01.10