[PCCE 기출문제] 10번 / 데이터 분석

Seohyun·2024년 8월 21일
0

알고리즘

목록 보기
23/36

문제 링크

def solution(data, ext, val_ext, sort_by):
    
    answer = []
    map_idx = {'code':0, 'date':1, 'maximum':2, 'remain':3}
    for d in range(len(data)):
        if data[d][map_idx[ext]] < val_ext:
            answer.append(data[d])
    answer.sort(key=lambda x:x[map_idx[sort_by]])
    
    return answer

이 문제는 리스트를 정렬하는 함수를 알고 있어야 풀 수 있는 문제였다. 문제를 풀 때 List.sort() 함수를 사용했다. 아래는 함수의 사용법이다.

리스트.sort(key=함수, reverse=불리언)

arr = [3, 5, 1, 2]
arr.sort(reverse=True)
# arr1: [5, 3, 2, 1]
  • 리스트에서만 사용 가능

  • 원본 변경

  • reverse=True 시 내림차순

    문제의 data 리스트 같은 경우 key 인자를 통해 정렬 기준을 줄 수 있다.

    # data: [[1, 20300104, 100, 80], [2, 20300804, 847, 37], [3, 20300401, 10, 8]]
    
    data.sort(key=lambda x:x[1], reverse=False)
    # data: [[1, 20300104, 100, 80], [3, 20300401, 10, 8]], [2, 20300804, 847, 37]
    
    # 기준이 두 개 (x[1] 기준 오름차순, x[2] 기준 내림차순)
    data.sort(key=lambda (x: x[1], -x[2]))

    리스트를 정렬하기 위한 비슷한 함수로는 List = sorted() 함수가 있다. 아래는 해당 함수의 사용법이다.

sorted(리스트, key=함수, reverse=불리언)
 
arr = [3, 5, 1, 2]
arr1 = sorted(arr, reverse=True)
# arr1: [5, 3, 2, 1]
  • list, tuple, dict, str에 사용 가능
  • 원본 변경 X
  • reverse=True 시 내림차순
profile
Hail hamster

0개의 댓글