728x90
https://www.acmicpc.net/problem/10825
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
'Algorithm (PS)' 카테고리의 다른 글
[백준] 2110 공유기 설치 in Python (0) | 2022.01.25 |
---|---|
[카카오2019] 실패율 in Python (0) | 2022.01.25 |
[백준] 16234 인구이동 in Python (0) | 2022.01.23 |
[백준] 1451 직사각형으로 나누기 in Python (0) | 2022.01.23 |
[백준] 14888 연산자 끼워넣기 Python (0) | 2022.01.22 |