본 내용은 <파이썬 알고리즘 인터뷰>를 참고했습니다.
Leet Code 937 : Reorder Log Files
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
포인트
- 로그의 두번째 원소를 기준으로 .isdigit()을 사용하여 두 개의 리스트로 분류(letters, digits)
- lambda를 이용한 sort
- 문자가 동일한 경우 식별자 순
- key=lambda x: (x.split()[1:], x.split()[0]) 으로 두면, x.split()[1:] 조건을 우선순위로 하고, 이후 x.split()[0]도 고려한다
- 숫자 로그는 입력 순서대로 한다(letters + digits)
'프로그래머 > Python' 카테고리의 다른 글
[Python] Leet Code 49 : Group Anagrams (0) | 2021.02.12 |
---|---|
[Python] Leet Code 819 : Most Common Word (0) | 2021.02.12 |
[Python] Leet Code 344 : Reverse String 풀이 및 분석 (0) | 2021.02.03 |
[Python] Leet Code 125 : Valid Palindrome 풀이 및 분석 (0) | 2021.02.03 |
[Python] 딕셔너리(dictionary) | Ordereddict(), defaultdict(), Counter() (0) | 2021.02.01 |