백준 2075 N번째 큰 수

import heapq
import sys
result = None
input = sys.stdin.readline

n = int(input())
arr = (() for _ in range(n))    #nxn 2차원 배열 생성

for _ in range(n):  #세로로 분할하여 이차원 리스트에 저장
    inputList = list(map(int, input().split()))
    for i in range(n):
        arr(i).append(inputList(i))

for _ in range(n):
    heap = ()   #힙 초기화
    for i in range(n):
    heapq.heappush(heap, (-1*arr(i)(-1),i)) #(-1* 각 세로 줄의 최대값, 그 값의 인덱스)튜플을 힙에 저장
    result = heapq.heappop(heap)    #이 중 최솟값을 result에 저장
    arr(result(1)).pop()    #최솟값에 해당하는 인덱스 번호를 가져와 인덱스에 해당하는 배열의 최댓값 pop
#n번 반복
print(result(0)*(-1))
#결과 출력 (-1 다시 곱해서 원래대로 복구)

결과는 정확하지만 메모리가 초과되었습니다.

(아마도 힙 초기화는 불필요..고정)