Algorithm/BaekJoon

백준 21.12.21. 7568번 - 덩치

HappyFrog 2021. 12. 21. 22:35

N = int(input())

size = []

for _ in range(N):
    x, y = map(int, input().split())
    size.append([x, y])

result = []

for i in range(N):
    rank = 1
    for j in range(N):
        if i == j:
            continue
        if size[j][0] > size[i][0] and size[j][1] > size[i][1]:
            rank += 1
    result.append(rank)

for _ in result:
    print(_, end=' ')
  • 우선 각 사람의 체중, 신장을 담을 리스트를 만들어줍니다.
  • 각 개체마다의 체중, 신장을 비교해야 하기 때문에 개체를 구분하기 위해 list형식의 size를 list형식으로 추가했습니다.
  • 그리고 개체의 순위를 저장할 rank를 list형식으로 선언해줍니다.
  • 이제 각 개체마다 반복을 실행하며 다른 개체들과 비교해줍니다.
  • 만약 i와 j가 같다면 continue를 사용하여 건너뛰어 줍니다.
  • 등수는 "자신보다 덩치가 큰 사람의 수 + 1" 이라고 했으므로 덩치가 큰 사람을 찾을 때마다 rank를 1씩 더해줍니다.
  • 그리고 size[i]를 기준으로 한 비교가 끝났다면 결과를 저장하는 list형식의 result에 저장해줍니다.
  • 모든 비교가 끝났다면 반복문을 통해 등수를 출력해줍니다.