N
: 전체 사람 수 (2 ≤ N ≤ 50)
x
: 몸무게 (10 ≤ x ≤ 200)
y
: 키 ( 10 ≤ y ≤ 200)
✅ 입력 조건
1. N 입력
2. N개의 x, y가 공백으로 구분되어 입력
✅ 출력 조건
1. N명의 사람들의 덩치 등수를 구해 순서대로 첫 줄에 공백으로 분리하여 출력
덩치가 큰 사람 : 몸무게, 키를 비교해서 둘다 더 큰 사람을 의미.
덩치를 비교할 수 없는 경우 : 몸무게 더 나감 & 키가 더 작음
각 사람의 덩치 등수는 자신보다 더 큰 덩치의 사람 수를 의미한다.
→ 자신보다 더 큰 덩치의 사람 수가 k
이면 덩치 등수 = k+1
이중 for문으로 N명의 사람을 돌아가면서 다른 사람의 덩치와 비교해서 키와 몸무게가 모두 더 큰 사람의 수를 count한다.
N개 입력받기 →
이중 for문 →
최종 시간복잡도
로 2 ≤ N ≤ 50 조건에서
최악의 경우, 이므로 1억번 내에 연산이 가능하다.
이중 for문으로 비교해가며 갯수 세기
N
입력N
반복해서 (x, y)
입력N
개의 (x, y)
반복(x, y)
와 나머지를 비교import sys
input = sys.stdin.readline
# 0. 필요한 변수 정의
rank = []
# 1. `N` 입력
N = int(input())
# 2. N 반복해서 (x, y) 입력
sizes = [list(map(int, input().split())) for _ in range(N)]
# 3. for문으로 N개의 (x, y) 반복
for size in sizes:
count = 0
# 4. for문으로 첫번째 for문의 (x, y)와 나머지를 비교
for rest in sizes:
# 5. 몸무게, 키가 모두 더 큰 경우를 count
if size[0] < rest[0] and size[1] < rest[1]:
count += 1
else:
continue
# 6. count+1한 수를 리스트에 append
rank.append(count+1)
# 7. 원하는 결과 출력
print(*rank)