BOJ / Sorting / 올림픽 / Python

k_dah·2022년 2월 22일
0

CodingTest

목록 보기
15/16

<8979번>

✍️ 문제 풀이

우선 금메달 개수를 기준으로 정렬한다.
금메달 개수가 같다면 은메달, 은메달 개수도 같다면
동메달을 기준으로 정렬한다.
sort()와 lambda로 구현했다.

💻 코드

import sys
input = sys.stdin.readline

n, k = map(int, input().split())

scores = [[] for _ in range(n)]

for i in range(n):
    nation, gold, silver, bronze = map(int, input().split())
    scores[nation-1] = [gold, silver, bronze] 
    
k_score = scores[k-1]
scores.sort(key = lambda x: (-x[0],-x[1],-x[2]))

for i in range(n):
    if k_score[:] == scores[i][:]:
        print(i+1)
        break    

👀 문제 풀면서

  • .sort(key = lambda ~)
    sort()는 key 값을 기준으로 정렬하며 기본값은 오름차순이다.
# 인덱스 0의 값으로 오름차순 정렬 후, 인덱스 1의 값으로 내림차순 정렬
리스트.sort(key = lambda x : x[0], -x[1])
  • 배열 비교하기
if k_score[:] == score[i][:]:
profile
개똥이

0개의 댓글