https://www.acmicpc.net/problem/7568
아이디어:
문제에 큰 힌트가 숨겨져 있다. '만일 자신보다 더 큰 덩치의 사람이 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=" ")
'기술 기록 > Python,Django' 카테고리의 다른 글
error, 파이참버그) ValueError: invalid literal for int() with base 10: '' / 파이참 인풋 버그 (0) | 2022.05.30 |
---|---|
Django ) 데코레이터를 이용한 유저 검증 (0) | 2022.05.16 |
파이썬PS) 백준 6603 로또. 백트래킹 (0) | 2022.04.12 |
파이썬) 객체 리스트의 다중 정렬 (백준 10825) (0) | 2022.03.27 |
python ) 문자열 파싱 (0) | 2022.02.20 |
댓글