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 다시 곱해서 원래대로 복구)
결과는 정확하지만 메모리가 초과되었습니다.
(아마도 힙 초기화는 불필요..고정)
![[백준] 1764번: [백준] 1764번:](https://ko.fantacola.kr/wp-content/plugins/contextual-related-posts/default.png)