Algorithm (PS)
[백준] 10825 국영수 in Python + lambda 함수 정리
minjiwoo
2022. 1. 24. 00:03
728x90
https://www.acmicpc.net/problem/10825
10825번: 국영수
첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1
www.acmicpc.net
n = int(input())
a = []
for i in range(n):
a.append(input().split())
a.sort(key=lambda x:(-int(a[1]), int(a[2]), -int(a[3]), a[0]))
for i in a:
print(i[0])
lambda 함수 는 익명함수 ! 즉 이름이 없는 함수이다. runtime에 생성해서 사용할 수 있는 익명 함수이다.
sort() 함수와 종종 같이 사용되는 걸 볼수 있는데, list.sort() 는 key parameter가 있다.
key parameter를 통해서 함수를 커스텀(혹은 구체화)하여 사용할 수 있는 것이다.
즉, key 다음에 lambda 함수를 써주어서 sort() 함수를 커스텀한것읻자.
또 다른예로, sorted()에서의 key parameter에 다른 함수를 넣어보자
print(sorted("bear cat apple".split(), key=str.lower))
<출력>
['apple', 'bear', 'cat']
다음과 같이 알파벳 순으로 잘 정렬된 것을 확인 할 수 있다.
형식은 다음과 같다.
lambda 매개변수 : 표현식
# 일반 함수
def add(x, y):
return x+y
print(add(10,20))
# 람다 형식 함수
print((lambda x,y: x+y)(10,20))
728x90