<aside> 💬 lv0, 정렬

수학은 내가 1등

문제 설명

이름, 국영수 점수가 {'이름': '홍길동', '국': 70, '영': 30, '수':20}와 같이 딕셔너리 형태로 주어졌을 때 반 점수는 [{'이름': 'A'...}, {'이름': 'B'...}, {'이름': 'C'...}]와 같은 형태로 주어집니다. 이 때 반에서 수학점수가 가장 높은 학생의 이름을 출력하는 solution함수를 완성해주세요.


제한 사항


입출력 예

입력 출력
[{'이름': 'A', '국': 30, '영': 20, '수': 85}, {'이름': 'B', '국': 95, '영': 98, '수': 10}] 'A'
[{'이름': 'A', '국': 21, '영': 33, '수': 54}, {'이름': 'B', '국': 32, '영': 43, '수': 11}] 'A'

입출력 설명

[{'이름': 'A', '국': 30, '영': 20, '수': 85}, {'이름': 'B', '국': 95, '영': 98, '수': 10}]이 입력되었을 때 수학 점수는 각각 'A'가 85점, 'B'가 10점이 됩니다. 따라서 가장 높은 점수는 A가 됩니다.

</aside>

😺 풀이 1. 첫번째요소 반환

def solution(data):
    sorted_data = sorted(data, key=lambda x: x['수'], reverse=True) **#1 sorted함수**
    return sorted_data[0]['이름'] **#2 첫번째 요소 반환**

단계별 풀이 전략

  1. sorted() 함수

    입력으로 주어진 data 리스트를 '수' 키 값을 기준으로 내림차순으로 정렬합니다. 즉, 가장 높은 수학 점수를 가진 딕셔너리가 리스트의 맨 앞에 위치하게 됩니다.

  2. 첫번째 요소 반환

    그 요소의 '이름' 값을 반환합니다. 이는 가장 높은 수학 점수를 가진 주식의 이름을 의미합니다.

알아둬야 할 개념

첫 번째 요소 반환

풀이 2. max()함수

def solution(data):
    return max(data, key=lambda x: x['수'])['이름'] **#1 max함수 #2 key 매개변수**

단계별 풀이 전략

  1. max() 함수

    입력된 리스트 data에서 '수' 키 값을 기준으로 최대값을 가지는 딕셔너리를 찾습니다.

  2. key 매개변수

    딕셔너리의 '수' 키를 기준으로 최대값을 찾습니다. 최대값을 가지는 딕셔너리의 '이름' 값을 반환합니다. 즉, 이 함수는 입력 데이터에서 가장 높은 수학 점수를 가진 주식의 이름을 반환합니다.

알아둬야 할 개념

max 함수