[Python] 백준 10825번 국영수

이세인·2021년 7월 22일
0

코테 문제풀이

목록 보기
5/8

10825번 (국영수)

lambda를 이용하는 정렬문제이다.

lambda로 정렬하는 법 : (key = lambda x : x[0])

  • 오름차순으로 하고싶으면 x[0]
  • 내름차순으로 하고싶으면 -x[0]
  • x[0]으로 정렬하는데 x[0]이 같을땐 x[1]로 정렬하고 싶을 땐
    (x[0], x[1])

구글링을 해서 sorted(li, key=lambda x:(-x[1],x[2],-x[3],x[0])) 로 했는데 답이 나오지 않아 헤맸는데 ...
알고보니 li.sort(key = lambda x: (-x[1], x[2], -x[3], x[0]))로 써야했다.

sorted() vs sort()

sorted() -> 원본은 변하지 않고 변한 값만 반환하는 것
sort() -> 원본의 값을 바꿔서 원본을 반환하는 것


<정답>

import sys
n = int(sys.stdin.readline())
li=[]
for i in range(n):
    a = sys.stdin.readline().split()
    for i in range(1,4):
        a[i] = int(a[i])
    li.append(a)
li.sort(key = lambda x: (-x[1], x[2], -x[3], x[0]))

for i in range(n):
    print(li[i][0])
profile
Hongik CE

0개의 댓글

관련 채용 정보