DHistory

[Baekjoon] Sort - 8979 올림픽 본문

Computer Science/Algorithm

[Baekjoon] Sort - 8979 올림픽

ddu0422 2023. 9. 8. 15:35

문제

 

8979번: 올림픽

입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각

www.acmicpc.net

 

풀이

import sys

n, k = map(int, sys.stdin.readline().rstrip().split())
scores = []
for _ in range(n):
    no, g, s, b = map(int, sys.stdin.readline().rstrip().split())
    scores.append([no, g, s, b])


def solution(scores, k):
    ranks = [0] * n
    rank = 1
    scores = sorted(scores, key=lambda x: (-x[1], -x[2], -x[3], x[0]))
    ranks[scores[0][0] - 1] = rank

    for i in range(1, len(scores)):
        rank += 1
        if scores[i - 1][1:] == scores[i][1:]:
            ranks[scores[i][0] - 1] = ranks[scores[i - 1][0] - 1]
        else:
            ranks[scores[i][0] - 1] = rank

    return ranks[k - 1]

print(solution(scores, k))

 

채점 결과