알고리즘/백준

백준-8979-올림픽

hong2943 2024. 4. 5. 01:54

구현한 코드

N , K = map(int, input().split()) # m : 찾는 국가 번호

prize = [0 for i in range(4)]

for i in range(N):
    prize[i] = list(map(int,input().split()))

# prize = [list(map(int,input().split())) for _ in range(N)] # 2차원 배열 입력 받는 또 다른 방법

prize.sort(key = lambda x: (x[1], x[2] , x[3]) , reverse=True)# 람다식을 활용하여 정렬 기준을 금, 은 , 동 순서로 기준을 주었다.

# 찾는 국가의 인덱스 => 순위
idx = 0
for j in range(N):
    if(prize[j][0] == K):
        idx = j

# 동점 확인
for z in range(N):
    if prize[idx][1:] == prize[z][1:]:
        print(z+1)  # range(N)으로 0부터 시작하므로 +1의 결과가 되어야 순위가 나온다.
        break

 

여기서의 포인트는 람다식을 통해서 정렬 조건을 주어서 정렬하는 것이 핵심 포인트이다.

 

이 방법은 유용하게 사용될 것 같으니 잘 기억하는 것이 좋을 것 같다!

 

문제링크

'알고리즘 > 백준' 카테고리의 다른 글

백준-1158-요세푸스 문제  (1) 2024.04.06
백준-2563-색종이  (1) 2024.04.06
백준-9017-크로스 컨트리  (0) 2024.04.05
백준-11723-집합  (0) 2024.03.27
백준-1157-단어 공부  (0) 2024.03.26