2023.04.27 풀이 - 실패
import sys
input=sys.stdin.readline
arr=[]
k=1
t=0
n=int(input())
for i in range(n):
a,b=map(int, input().split())
arr.append((a,b,i))
arr2=sorted(arr, reverse=True, key=lambda x:(x[0], x[1]))
for i in range(n-1):
if arr2[i][1]>arr2[i+1][1]:
arr[arr2[i][2]]=k
k+=1+t
else:
arr[arr2[i][2]]=k
t+=1
if arr2[n-2][1]>arr2[n-1][1]:
arr[arr2[n-1][2]]=k
k+=1+t
else:
arr[arr2[n-1][2]]=k
t+=1
print(*arr)
다른풀이
import sys
input=sys.stdin.readline
arr=[]
n=int(input())
for i in range(n):
a,b=map(int, input().split())
arr.append((a,b))
for i in arr:
k=1
for j in arr:
if i[0]<j[0] and i[1]<j[1]:
k+=1
print(k, end=" ")
check point
- "만일 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 된다"
-> 자신보다 덩치가 큰 사람 카운트해서 +1 후 출력
-> 2중 for문으로 n명을 n번 판별