09009
[백준 8979번] 올림픽 본문
문제 보기
https://www.acmicpc.net/problem/8979
8979번: 올림픽
입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각
www.acmicpc.net
문제 해결
정렬을 이용하여 해결하는 문제이다. lambda를 이용하여 sort 하는 방법 참고하기
직접 해결한 풀이
import sys
input = sys.stdin.readline
n, k = map(int,input().split())
arr = []
for _ in range(n):
arr.append(list(map(int,input().split())))
arr = sorted(arr, key=lambda x:(-x[1], -x[2], -x[3]))
cnt, remain_cnt = 0, 0
for i in range(n):
cnt += 1
if i >= 1:
if arr[i][1:] == arr[i-1][1:]:
remain_cnt += 1
elif arr[i][1:] != arr[i-1][1:]:
remain_cnt = 0
if arr[i][0] == k:
print(cnt - remain_cnt)
소스 코드
import sys
input = sys.stdin.readline
n, k = map(int,input().split())
countries = [list(map(int,input().split())) for _ in range(n)]
def solution(n, k, countries):
countries.sort(key=lambda x:(x[1], x[2], x[3]), reverse=True)
for i in range(n):
if countries[i][0] == k:
idx = i
for i in range(n):
if countries[idx][1:] == countries[i][1:]:
return i+1
print(solution(n,k,countries))
'Algorithm' 카테고리의 다른 글
파이썬 or 사용방법 (0) | 2023.09.22 |
---|---|
[Python] 변수 값 변경 참고 (swap) (0) | 2023.09.22 |
에라토스테네스의 체 (0) | 2023.09.12 |
[프로그래머스 lv2] 땅따먹기 (0) | 2023.08.30 |
[프로그래머스 lv2] [1차] 뉴스 클러스터링 (0) | 2023.08.27 |