람다식 사용,sort()-[리트코드]937. Reorder Data in Log Files

이영준·2022년 6월 13일
0

알고리즘 문제풀이

목록 보기
8/24

https://leetcode.com/problems/reorder-data-in-log-files/

class Solution:
    def reorderLogFiles(self, logs: List[str]) -> List[str]:
        letter_logs = []
        digit_logs = []
        for val in logs:
            if val.split()[1].isdigit():
                digit_logs.append(val)
            else:
                letter_logs.append(val)
        letter_logs.sort(key=lambda x: (x.split()[1:],x.split()[0]))
        return letter_logs+digit_logs

매개변수가 필요하지 않은 함수는 람다식으로 inline형태로 적을 수 있다.
이 문제에서는 digit log들은 정렬이 따로 필요없으므로, letter log만을 조건문으로 따로 만들어 lambda식으로 정렬을 했다.

sort함수는 인자로 key=를 받아 정렬 기준을 줄 수 있으며, ,로 구분하여 우선순위대로 처리할 수 있다.
letter_logs의 키를 람다식으로 각 letter_logs의 요소를 공백으로 split한것의 두번째 글자 이후, 그 값이 동일하다면 첫번째 값으로 키를 지정해준다.

	이렇게 리스트를 소팅할 때 람다식을 통해 각 요소의 구체적인 어떤 부분을 키로 지정해줄 수 있다.
profile
컴퓨터와 교육 그사이 어딘가

0개의 댓글