[알고리즘]/BOJ
[백준/Python] 8979: 올림픽
개발새발주발
2023. 2. 25. 19:18
728x90
1. 문제
8979번: 올림픽
입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각
www.acmicpc.net
2. 해결
- 우선 얻은 금메달, 은메달, 동메달 수의 순서대로 리스트를 정렬한다.
- sort, lambda함수를 이용하여 정렬하였다.
- 등수를 찾을 때 for 문을 돌며 n과 함께 주어진 국가번호 k의 index(정렬한 리스트의 등수 -1) 를 찾는다.
- 등수가 중복되는 국가의 공동 등수를 지정하기 위해 for문을 돌며 k국가의 모든 메달 수 가 같은 국가가 나오면 그 국가의 (index+1)등이므로 출력해준다.
3. 코드
n, k = map(int,input().split())
table = [list(map(int,input().split())) for _ in range(n)]
table.sort(key = lambda x: (-x[1], -x[2], -x[3]))
for i in range(n):
if table[i][0] == k:
# 국가번호
idx = i
for j in range(n):
# 중복 체크
if table[idx][1:] == table[j][1:] :
print(j+1)
break