12/11 [PCCE 기출문제] 10번/데이터분석
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
댓글남기기