'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀
문제 👉 <Reorder Data in Log Files - LeetCode>
1. 문제 (로그 파일 재정렬)
- 로그의 가장 앞부분은 식별자다.
- 문자로 구성된 로그가 숫자 로그보다 앞에 온다.
- 식별자는 순서에 영향을끼치지 않지만, 문자가 동일할 경우 식별자순으로 한다.
- 숫자 로그는 입력 순서대로 한다.
2. 풀이
람다
와+ 연산자
를 이용한 풀이
isdigit()
을 이용해 숫자와 문자 로그를 구분한다.람다
를 통해 식별자가 아닌 로그 부분을 먼저 정렬 후 식별자를 정렬한다.letters.sort(key=lambda x: (x.split()[1:], x.split()[0]))
- 문자열 [1:]를 통해 정렬을 하고, 동일한 경우 후순위로 식별자 [0]로 정렬한다.
+ 연산자
를 통해 문자와 숫자 로그를 합친다.
3. 코드
- 람다와 +연산자를 이용한 풀이
class Solution:
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
- 결과 :
방식 | Status | Runtime | Memory | Language |
---|---|---|---|---|
람다와 +연산자 | [Accepted] | 32 ms | 14.2 MB | python3 |
References
🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋
'Coding Test > LeetCode' 카테고리의 다른 글
[LeetCode] 2. Add Two Numbers [Python(파이썬)] (0) | 2021.11.23 |
---|---|
[LeetCode] 819. Most Common Word [Python(파이썬)] (0) | 2021.11.23 |
[LeetCode] 561. Array Partition I [Python(파이썬)] (0) | 2021.11.23 |
댓글