프론트엔드 개발자 중규리 입니다 ദി ᷇ᵕ ᷆ ) 자세히보기

PS/문제풀이

백준 2075 N번째 큰 수 Python

중규리 2024. 1. 27. 15:47

🐸 문제 정보

 

2075번: N번째 큰 수

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

www.acmicpc.net

 

🤖 알고리즘

우선순위 큐

 

⏱️ 풀이 시간

22.33m

 

📝 풀이

구현처럼 풀다가 실패해서 검색으로 아이디어를 얻었다.

우선순위 큐로 푸는 문제였고,  n*n이기 때문에 큐의 범위를 n만큼 유지한다면 마지막 줄까지 돌았을 때 0번째에 위치한 원소가 n번째 큰 수가 되었다.

 

오늘은 집중이 잘 안되는 날이다ㄷㄷ

 

🧑‍💻 나의 답

# pypy3

import sys, heapq
input = sys.stdin.readline

n = int(input().rstrip())
q = []

for _ in range(n):
    nums = list(map(int, input().rstrip().split()))
    for num in nums:
        if len(q) < n:
            heapq.heappush(q, num)
        else:
            if q[0] < num:
                heapq.heappop(q)
                heapq.heappush(q, num)

print(q[0])

'PS > 문제풀이' 카테고리의 다른 글

백준 1806 부분합 Python  (2) 2024.01.28
백준 1138 한 줄로 서기 Python  (1) 2024.01.28
백준 2138 전구와 스위치 Python  (1) 2024.01.26
백준 2304 창고 다각형 Python  (0) 2024.01.26
백준 15989 1, 2, 3 더하기 4 Python  (0) 2024.01.24