본문 바로가기
알고리즘 문제 풀이

[백준 7568번] 덩치 - 파이썬

by 진!!!!! 2024. 3. 2.

https://www.acmicpc.net/problem/7568

 

7568번: 덩치

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩

www.acmicpc.net

 

💡문제 분석 요약

몸무게와 키를 입력받고, 덩치 등수를 출력한다.

몸무게는 더 무거운데 키는 작거나, 몸무게는 가벼운데 키는 큰 경우는 덩치를 가릴 수 없으므로, 같은 등수로 출력한다.

 

💡알고리즘 설계

1. 사람들의 몸무게와 키 정보를 입력받는다.

2. 한 사람씩, 이 사람보다 키와 몸무게가 둘 다 큰 사람이 몇명인지 구하여 rank 리스트에 추가한다.

 

💡코드

import sys
input = sys.stdin.readline

N=int(input())
l=[]
rank=[]
for _ in range(N):
    weight, heigth=map(int, input().split())
    l.append([weight, heigth])

for i in range(N):
    count=1
    for j in range(N):
        if l[i][0]<l[j][0] and l[i][1]<l[j][1]:
            count+=1
    rank.append(count)

for i in rank:
    print(i)

💡시간복잡도

O(N^2)

 

💡 느낀점 or 기억할 정보

등수가 업데이트 될 때 마다 이전 사람들의 등수도 전부 수정하는 방법으로 생각했는데, 단순하게 자신보다 키와 몸무게가 둘 다 큰 사람의 명수를 구하면 되는 문제였다.