[Python] 백준7568 덩치
문제
예제 입력
코드
import sys
n = int(sys.stdin.readline())
arr = [ list(map(int, sys.stdin.readline().split())) for _ in range(n) ]
for i in range(n) :
rank = 1
for j in range(n) :
if i != j and arr[i][0] < arr[j][0] and arr[i][1] < arr[j][1] :
rank += 1
print(rank, end=" ")
설명
파이썬을 통해서 사용자로부터 입력받아 조건문/반복문으로 사용하여 덩치을 구현했습니다.
정리
import sys
n = int(sys.stdin.readline())
arr = [ [ x+1, list(map(int, sys.stdin.readline().split())), 1] for x in range(n) ]
arr.sort(key = lambda item : item[1], reverse=True)
rank = 1
for i in range(1, n) :
if arr[i-1][1][1] > arr[i][1][1] :
rank = i + 1
arr[i][2] = rank
arr.sort(key = lambda item : item[0])
for i in arr :
print(i[2], end=" ")
처음 문제를 봤을 때는 정렬하여 해결하면 되겠다는 안일한 생각으로 풀어 오답이 발생했습니다. 결국 이런 방식으로 하면 1등과 덩치가 비슷해도 몸무게의 순서로 인해 1등을 못하게 됩니다.