[파이썬 알고리즘 인터뷰] 로그파일 재정렬
2020. 12. 11. 10:19ㆍ노트/Algorithm : 알고리즘
출처 : 파이썬 알고리즘 인터뷰 6장
로그파일 재정렬
로그를 재정렬하라. 기준은 다음과 같다.
-
로그의 가장 앞 부분은 식별자다.
-
문자로 구성된 로그가 숫자 로그보다 앞에 온다.
-
식별자는 순서에 영향을 끼치지 않지만, 문자가 동일할 경우 식별자 순으로 한다.
-
숫자 로그는 입력 순서대로 한다.
- 입력
logs = ["dig1 8 1 5 1","let1 art can","dig2 3 6","let2 own kit dig","let3 art zero"]
- 출력
["let1 art can", "let3 art zoo", "let2 own kit dig", "dog1 8 1 5 1","dig2 3 6"]
logs = ["dig1 8 1 5 1","let1 art can","dig2 3 6","let2 own kit dig","let3 art zero"]
# 풀이1 람다와 + 연산자를 이용
def log_sort(logs):
letters, digits = [], []
for log in logs :
if log.split()[1].isdigit():
digits.append(log)
else :
letters.append(log)
# 2개의 key를 람다 표현식으로 정렬
letters.sort(key=lambda x: (x.split()[1:], x.split()[0]))
return letters + digits
log_sort(logs)
>>> ['let1 art can',
'let3 art zero',
'let2 own kit dig',
'dig1 8 1 5 1',
'dig2 3 6']
'노트 > Algorithm : 알고리즘' 카테고리의 다른 글
[파이썬알고리즘 인터뷰] 그룹 애너그램 (0) | 2020.12.25 |
---|---|
[파이썬 알고리즘 인터뷰] 가장 흔한 단어 (0) | 2020.12.24 |
[파이썬 알고리즘 인터뷰] 문자열 뒤집기 (0) | 2020.11.28 |
[파이썬알고리즘 인터뷰] 유효한 팰린드롬 구하기 (0) | 2020.11.28 |
[leetcode] 9. Palindrome Number (0) | 2020.11.11 |