본문 바로가기
알고리즘/BOJ

[BOJ / 백준] 2535번 아시아 정보올림피아드 python / 파이썬 lamda 내림차순 정렬

by seohmoon 2022. 6. 1.

출처 : https://www.acmicpc.net/problem/2535

 

2535번: 아시아 정보올림피아드

첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사

www.acmicpc.net


각 나라별 최대 획득 가능 메달 수는 2개

금이랑 은의 나라가 같으면 동은 무조건 다른 나라

 

일단 리스트의 리스트로 입력을 받아서

람다로 2번째 인덱스(점수) 기준으로  내림차순 정렬

 

 arr.sort(key=lambda x:x[2], reverse=True)

 

# BOJ2535 아시아 정보올림피아드
N = int(input())
arr = [] # input 리스트
for i in range(N):
    i = list(map(int, input().split()))
    arr.append(i)
arr.sort(key=lambda x:x[2], reverse=True) # 점수 기준, 내림차순 정렬

print(arr[0][0], arr[0][1], sep=" ")
print(arr[1][0], arr[1][1], sep=" ")

a = 0
while a + 2 < N:
    if arr[0][0] != arr[1][0]:
        print(arr[2 + a][0], arr[2 + a][1], sep=" ")
        break
    else: # 금과 은이 같은 나라일때
        if arr[0][0] == arr[2 + a][0]: # 동도 같은 나라
            a += 1 # 한 칸 옆으로
        else: # 다르면 출력
            print(arr[2 + a][0], arr[2 + a][1], sep=" ")
            break

 

 

댓글