[알고리즘] 로그 파일 재정렬

June·2021년 1월 16일
0

알고리즘

목록 보기
13/260

로그 파일 재정렬

내 풀이

풀지 못했다. 그렇게 어려운 문제가 아닌데 지레 겁을 먹었다. 문제를 차근차근 읽자.

책 풀이

def reorderLogFiles(logs: List[str]) -> List[str]:
    letters, digits = [], []
    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

문자로 구성된 로그가 숫자로 된 로그보다 앞에 와야하므로 로그가 숫자로 된 것인지 문자로 된 것인지 구분해서 저장한다. 문자로 된 로그는 로그의 식별자 뒷 부분을 우선으로 기준하여 정렬하고, 같으면 식별자를 기준으로 정렬한다. 한편 숫자로 구성된 로그는 입력 순서대로이므로 그냥 그대로 이용한다.

한꺼번에 꼭 정렬을 해야한다는 생각을 깨자. 구분을 해서 정렬을 해도 된다.

0개의 댓글