김찬양의 개발일지
2일차. [PCCE 기출문제] 10번 / 데이터 분석 본문
https://school.programmers.co.kr/learn/courses/30/lessons/250121
문제
AI 엔지니어인 현식이는 데이터를 분석하는 작업을 진행하고 있습니다. 데이터는 ["코드 번호(code)", "제조일(date)", "최대 수량(maximum)", "현재 수량(remain)"]
으로 구성되어 있으며 현식이는 이 데이터들 중 조건을 만족하는 데이터만 뽑아서 정렬하려 합니다.
정렬한 데이터들이 담긴 이차원 정수 리스트 data
와 어떤 정보를 기준으로 데이터를 뽑아낼지를 의미하는 문자열 ext
, 뽑아낼 정보의 기준값을 나타내는 정수 val_ext
, 정보를 정렬할 기준이 되는 문자열 sort_by
가 주어집니다.
data
에서 ext
값이 val_ext
보다 작은 데이터만 뽑은 후, sort_by
에 해당하는 값을 기준으로 오름차순으로 정렬하여 return 하도록 solution 함수를 완성해 주세요. 단, 조건을 만족하는 데이터는 항상 한 개 이상 존재합니다.
풀이과정
string값으로 주어지는 ext와 sort_by의 인덱스를 쉽게 찾기 위해
title = ["code", "date", "maximum", "remain"]
의 리스트를 만들어서 .index로 찾아내도록 했다.
data에서 ext값이 val_ext값보다 작은 데이터만 뽑는
filter(lambda x:x[title.index(ext)]<val_ext, data)
를 사용했고, 그걸 sort_by를 기준으로 섞기 위해
sorted(filter, key=lambda x:x[title.index(sort_by)])
를 사용했다.
정답
def solution(data, ext, val_ext, sort_by):
title = ["code", "date", "maximum", "remain"]
return sorted(filter(lambda x:x[title.index(ext)]<val_ext, data), key=lambda x:x[title.index(sort_by)])
'코딩테스트 > Programmers Level 1' 카테고리의 다른 글
6일차. 개인정보 수집 유효기간 (1) | 2023.11.29 |
---|---|
5일차. 둘만의 암호 (0) | 2023.11.28 |
4일차. 카드 뭉치 (0) | 2023.11.27 |
3일차. 대충 만든 자판 (2) | 2023.11.26 |
1일차. [PCCE 기출문제] 9번 / 이웃한 칸 (1) | 2023.11.24 |