최대 1 분 소요

https://school.programmers.co.kr/learn/courses/30/lessons/250121

주어진 이차원 정수 리스트 data에서 특정 조건을 만족한 데이터를 뽑은 뒤 특정 조건으로 정렬해서 출력하는 코드를 작성하는 문제이다..

내 풀이

def solution(data, ext, val_ext, sort_by):
    answer = []
    properties = ["code", "date", "maximum", "remain"]
    d_idx, sort_idx = 0, 0
    
    for d in data :
        for p in properties :
            if ext == p :
                d_idx = properties.index(p)
            if sort_by == p :
                sort_idx = properties.index(p)
                
        if d[d_idx] < val_ext :
            answer.append(d)
    answer = sorted(answer, key = lambda x : x[sort_idx])
    return answer

다른 사람의 풀이

내 풀이에서 인덱스를 따로 변수로 지정한 대신 리스트 컴프리헨션에 바로 적용해서 더 간단한 풀이가 됐다.

def solution(data, ext, val_ext, sort_by) :
    properties = ["code", "date", "maximum", "remain"]
    selected = [d for d in data if d[properties.index(ext)] < val_ext]
    selected = sorted(selected, key = lambda x : x[properties.index(sort_by)])
    
    return selected

댓글남기기