1. 문제
https://leetcode.com/problems/reorder-data-in-log-files
Reorder Data in Log Files - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
2. 접근 방법
일단 문제는 주어진 logs라는 리스트를 잘 확인하는 것
리스트의 각 요소는 str형식인데 그 안에서 띄어쓰기를 기준으로
맨 앞의 단어는 identifier이고,
identifier 뒤에 나온 것들이 숫자인 경우에는 : Digit-logs
identifier 뒤에 나온 것들이 문자인 경우에는 : Letter-logs 입니다.
주어진 조건은
1. Letter-logs는 무조건 Digit-logs 앞에 나와야한다.
2. Letter-logs는 identifier 뒤에 나온 것들을 기준으로 다시 sort를 한다. (사전 순)
3. Digit-logs의 경우에는 원래의 순서를 유지한다.
입니다.
그래서 접근 방법은 다음과 같습니다.
1. 일단 Digit-logs와 Letter-logs를 분리해줬습니다.
2. Letter-logs의 경우 다시 사전 순으로 sort합니다.
3. Letter-logs와 Digit-logs를 합쳐줍니다.
3. 코드
python3
class Solution:
def reorderLogFiles(self, logs: List[str]) -> List[str]:
digits = []
letters = []
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
4. 마치며
영어 문제에 익숙해지는 중 + leetcode 환경에 적응 중인데 재밌네여
'Algorithm > Python' 카테고리의 다른 글
[LeetCode] 5. Longest Palindromic Substring (1) | 2021.06.03 |
---|---|
[LeetCode] 49. Group Anagrams (3) | 2021.06.03 |
[LeetCode] 344. Reverse String (0) | 2021.06.01 |
[LeetCode] 125. Valid Palindrome (0) | 2021.06.01 |
[백준 1759] 암호만들기 (1) | 2021.05.27 |