문제
Algorithm
2차원 리스트를 key 매개변수를 이용해 문제의 규칙에 따라 정렬한다. 정렬된 리스트 A에서 첫번째 열에 K가 저장되어 있는 행을 찾고 그 행의 위치를 i로 기억해둔다. 그리고 1등부터 N등까지의 등수를 의미하는 리스트 B를 만들고 A는 정렬되어 있기 때문에 K 국가의 등수는 K의 A에서의 행의 위치가 B에서의 위치가 된다. A는 정렬되어 있으므로 모든 메달의 개수가 같은 국가를 찾기 위해서 인접한 행만 비교하면 된다. 만약 이런 경우가 발생한다면 이 위치에 해당하는 B의 위치의 값을 모두 같은 값으로 해주면 되고 이 값을 가능한 한 가장 작은 수로 해준다. 그리고 B에서 원하는 국가 K의 등수를 찾으면 원하는 답이 나온다.
Code
input = __import__('sys').stdin.readline
N, K = map(int, input().split())
country = []
country_list = []
for _ in range(N):
get = list(map(int, input().split()))
country.append(get)
country.sort(key = lambda x : [x[1], x[2], x[3]], reverse = True)
idx = None
for i in range(N):
if country[i][0] == K:
idx = i
rank = list(range(1, N + 1))
for i in range(N - 1):
if i == idx:
continue
if country[i][1 :] == country[i + 1][1 :]:
rank[i + 1] = rank[i]
print(rank[idx])
'Koala - 9기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[BOJ/C] 1018 체스판 다시 칠하기 (0) | 2023.02.06 |
---|---|
[백준/파이썬] #7795 먹을 것인가 먹힐 것인가 (0) | 2023.02.06 |
[Baekjoon / 백준] 8979 python 파이썬 올림픽 (0) | 2023.02.05 |
[백준/Python] 2566번 최댓값 (0) | 2023.02.05 |
[백준/Java] 7795번 먹을 것인가 먹힐 것인가 (0) | 2023.02.05 |