sm 기술 블로그
77. 7568(덩치) 본문
N = int(input())
person = []
result = ""
for i in range(N):
person.append(list(map(int, input().split())))
for j in range(N):
cnt = N
for k in range(N):
if(person[j][0] >= person[k][0] or person[j][1] >= person[k][1]):
cnt -= 1
result += str(cnt+1) + " "
# 자기자신도 비교하기 때문에 + 1을 해줌 (조건식을 써도 되지만 +1 하는게 더 빠름)
print(result)
문제 요약
몸무게와 키가 크면 더 덩치가 크고 순위가 높다. 둘 중 하나만 크면 높다고 할 수 없다.
브루트스 파트로 전체를 다 비교하도록 하자.
A와 B를 비교 했을 때 A는 키가 B보다 더 크지만 몸무게는 B보다 덜 나간다.
그래서 둘의 덩치는 비교할 수 없다.
반면 A와 C를 비교 했을 때 C의 키와 몸무게가 A보다 크기 때문에 비교가 가능하고 C의 순위가 더 높다.
설명
전체 순위는 사람 수 만큼(N)으로 지정한다.
몸무게와 키가 자신보다 더 작으면 순위가 상승한다. (cnt-=1)
만약 몸무게와 키가 자신보다 더 크다면 순위는 상승 할 수 없다. (if문 만족 x)
자기 자신도 비교하기 때문에 순위가 한 단계 상승한다 => +1을 통해 순위를 낮춰준다.
'문제 > 백준_파이썬' 카테고리의 다른 글
79. 1436(영화감독 숌) (0) | 2022.06.12 |
---|---|
78.1018(체스판 다시 칠하기) (0) | 2022.06.11 |
76. 2231 (분해합) (0) | 2022.06.09 |
75. 2798(블랙잭) (0) | 2022.06.08 |
74. 11729(하노이 탑 이동 순서) (0) | 2022.06.08 |
Comments