본문 바로가기
기술 기록/Python,Django

파이썬PS) 백준 7568 덩치

by Fola 2022. 3. 29.

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

 

7568번: 덩치

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

www.acmicpc.net

 

 

아이디어:

 

문제에 큰 힌트가 숨겨져 있다. '만일 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 된다'

 

사람 한 명씩 전체 리스트를 순회하면서 

자신보다 큰 사람이 아무도 없으면 1등이고,

자신보다 큰 사람이 한 명씩 증가할 때마다 등수가 +1 씩 증가한다.

 

N의 최댓값이 50 이므로 시간 복잡도 O^2의 이중 for 문을 이용해도 큰 부담이 없다.

 

몸무게와 키를 key로 받는 dictionay 를 이용하여 list에 추가하는 방법으로 인풋 값을 저장하고

list를 중복 순회하면서 조건에 따라 등수를 1씩 증가시켜 등수를 출력했다. 

 

 

import sys

num_of_giant = int(sys.stdin.readline())

giant_list = []

for _ in range(num_of_giant):
    input_value = list(map(int, sys.stdin.readline().split()))
    giant = {'weight': input_value[0], 'height': input_value[1]}
    giant_list.append(giant)

for i in giant_list:
    ranking = 1
    for j in giant_list:
        if i['weight'] < j['weight'] and i['height'] < j['height']:
            ranking += 1

    print(ranking, end=" ")

댓글