728x90
반응형
[조건]
1) 로그 가장 앞 부분은 식별자
2) 문자로 구성된 로그가 숫자 로그보다 앞으로
3) 식별자는 순서에 영향을 주진 않지만, 문자가 동일할 경우 식별자 순으로 함
4) 숫자 로그는 입력 순으로 한다.
[입력]
logs = ["dig1 8 1 5 1", "let1 art can", "dig2 3 6", "let2 own kit dig", "let3 art zero"]
[출력]
["let1 art can", "let3 art zero", "let2 own kit dig", "dig1 8 1 5 1", "dig2 3 6"]
1. 람다 + 연산자 이용
- 문자 vs 숫자 구분
def reorderLogFiles(self, logs: List[str]) -> List[str]:
letters, digits = [], []
# 문자 vs 숫자 구분
for log in logs:
if log.split()[1].isdigit():
digits.append(log)
else:
letters.append(log)
# 2개의 키를 람다 표현식으로 정렬
# key(x.split()[1:])를 기준으로 정렬하고, 동일한 경우 x.split()[0] 으로 정렬
letters.sort(key=lambda x: (x.split()[1:], x.split()[0]))
# 리스트 합치기
return letters + digits
728x90
반응형
'PYTHON' 카테고리의 다른 글
[python3 | 알고리즘] 15. 문자열 조작(그룹 애너그램) (0) | 2021.03.09 |
---|---|
[python3 | 알고리즘] 14. 문자열 조작(가장 흔한 단어) (0) | 2021.03.09 |
[python3 | 알고리즘] 12. 문자열 조작(문자열 뒤집기) (0) | 2021.03.09 |
[python3 | 알고리즘] 11. 문자열 조작(팰린드롬) (0) | 2021.03.08 |
[python3] 10. 빅오 표기법(big-O) (0) | 2021.03.08 |