코드

n = int(input())

# 덩치를 입력받을 리스트
physical = []

for _ in range(n):
    physical.append(list(map(int, input().split())))
    

for i in range(n):
    # 등수
    rank = 1
    
    for j in range(n):
        if i == j:
            # 조금이나마 시간 측면에서 성능을 확보하고자 구현
            continue
        
        # 그냥 단순하게 나보다 큰 사람이 있으면 자기 등수를 1씩 늘려줌
        if physical[i][0] < physical[j][0] and physical[i][1] < physical[j][1]:
            rank += 1
    print(rank, end = ' ')    

문제 해설

브루트 포스 문제이다. 즉, 단순히 모든 경우를 따져보며 정답을 구하면 된다. 이 문제의 경우, 발상을 조금 전환해서 본인보다 등수가 높은 사람이 있으면 그냥 본인의 등수를 1씩 증가시키게 구현을 하니까 생각보다 쉽게 풀 수 있었다.

댓글남기기