BAEKJOON #2075 (정렬) - python

nathan·2021년 7월 18일
0

알고리즘문제

목록 보기
19/102

N번째 큰 수

출처 : 백준 #2075

시간 제한메모리 제한
1초12 MB

문제

N×N의 표에 수 N2개 채워져 있다. 채워진 수에는 한 가지 특징이 있는데, 모든 수는 자신의 한 칸 위에 있는 수보다 크다는 것이다. N=5일 때의 예를 보자.

1279155
13811196
2110263116
4814283525
5220324149

이러한 표가 주어졌을 때, N번째 큰 수를 찾는 프로그램을 작성하시오.
표에 채워진 수는 모두 다르다.


입력

첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다.


출력

첫째 줄에 N번째 큰 수를 출력한다.


입출력 예시

예제 입력 1

5
12 7 9 15 5
13 8 11 19 6
21 10 26 31 16
48 14 28 35 25
52 20 32 41 49

예제 출력 1

35


풀이

풀이 설명

  • 문제 조건을 보면 매우 적은 메모리로 풀도록 제한이 되어있다.
  • 따라서 하나의 리스트 내에서 끝내야하므로 for문을 돌 때마다 sort(reverse=True)로 정렬 후 n개 만큼 잘라 리스트를 업데이트 해 주었다.

python code

# 백준 2075번 정렬

from sys import stdin

n = int(stdin.readline())
arr = []
for i in range(n):
    arr += list(map(int, stdin.readline().split()))
    arr.sort(reverse=True)
    arr = arr[:n]

print(arr[-1])
profile
나는 날마다 모든 면에서 점점 더 나아지고 있다.

0개의 댓글