Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 판다스
- 부트캠프후기
- 넘파이
- 유데미
- 브루트포스 알고리즘
- Tableau
- DataFrame
- matplotlb
- Leetcode
- 유데미부트캠프
- 코딩테스트
- 데이터분석
- 데이터프레임
- 그리디 알고리즘
- 유데미큐레이션
- 취업부트캠프
- 데이터드리븐
- 태블로
- Til
- 백준
- 정렬
- 스타터스부트캠프
- 파이썬
- pandas
- 유데미코리아
- 시각화
- python
- 데이터시각화
- ndarray
- numpy
Archives
- Today
- Total
Diary, Data, IT
[LeetCode] 937. Reorder Data in Log Files - Python 본문
[LeetCode] 937. Reorder Data in Log Files - Python
Reorder Data in Log Files - LeetCode
Can you solve this real interview question? Reorder Data in Log Files - You are given an array of logs. Each log is a space-delimited string of words, where the first word is the identifier. There are two types of logs: * Letter-logs: All words (except the
leetcode.com
문제
각 로그에서 첫 번째 단어는 식별자이며, 공백으로 구분된 단어 문자열로 이루어진 로그 배열이 제공됩니다.
로그는 식별자를 제외한 모든 단어가 영문 소문자로 구성된 letter-logs와 식별자를 제외한 모든 단어가 숫자로 구성된 digit-log의 2종류로 구분됩니다.
이 로그 배열을 다음의 조건을 만족하는 순서대로 정렬하세요.
- 문자 로그는 모든 숫자 로그 앞에 위치합니다.
- 문자 로그는 사전순으로 정렬되며, 내용이 같으면 식별자를 기준으로 사전순으로 정렬합니다.
- 숫자 로그는 입력됐을 때의 상대적인 순서를 유지합니다.
아이디어
1) 로그는 digit과 letter의 2가지 종류로 구분되며, letter이 앞에 오는 순서대로 배치해야하기 때문에 log의 식별자 다음이 isdigit인지 확인하여 digit과 letter의 2가지 리스트에 따로 담아준다.
2) letter 로그는 식별자 이후 내용을 사전순으로 정렬하되, 내용이 같을 경우 식별자 기준으로 정렬해야하므로 sort함수의 key로 식별자 이후 부분과 식별자 부분을 각각 넣어주면 된다.
코드
class Solution:
def reorderLogFiles(self, logs: List[str]) -> List[str]:
#문자열/숫자열 로그 분류
digit = [log for log in logs if log.split(' ')[1].isdigit()]
letter = [log for log in logs if log.split(' ')[1].isdigit() == 0]
#문자열 로그 정렬
letter.sort(key = lambda x: (x.split()[1:], x.split()[0]))
return letter + digit
'Coding Test > LeetCode' 카테고리의 다른 글
| [LeetCode] 200. Number of Islands - Python (0) | 2023.04.15 |
|---|---|
| [LeetCode] 3. Longest Substring Without Repeating Characters - Python (0) | 2023.04.14 |
| [LeetCode] 819. Most Common Word - Python (0) | 2023.04.11 |
| [LeetCode] 344. Reverse String - Python (0) | 2023.04.11 |
| [LeetCode] 125. Valid Palindrome - Python (0) | 2023.04.10 |