1655번: 가운데를 말해요
첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1
www.acmicpc.net
문제풀이
2022.07.04 - [공부기록/자바스크립트 코딩테스트] - [백준/Python] 2696번 중앙값 구하기
[백준/Python] 2696번 중앙값 구하기
문제링크 2696번: 중앙값 구하기 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 수열의 크기 M(1 ≤ M ≤ 9999, M은 홀수)이 주어지고, 그 다음 줄부터
ehddud100677.tistory.com
어제 공부했던 중앙값 구하기를 다시 복습하고 풀었습니다.
로직은 동일합니다.
import sys
import heapq
input = sys.stdin.readline
maxh = []
minh = []
num = int(input())
first = int(input())
heapq.heappush(maxh,-1*first)
print(first)
for i in range(1,num) :
target = int(input())
if (i+1) % 2 == 0 :
if -1*maxh[0] < target :
heapq.heappush(minh,target)
else :
heapq.heappush(minh,-1*heapq.heappop(maxh))
heapq.heappush(maxh,-1*target)
# 출력
print(-1*maxh[0])
else :
if minh[0] < target:
heapq.heappush(maxh,-1*heapq.heappop(minh))
heapq.heappush(minh,target)
else :
heapq.heappush(maxh,-1*target)
# 출력
print(-1*maxh[0])
'공부기록 > 자바스크립트 코딩테스트' 카테고리의 다른 글
if문 중첩에 관한 고찰 (0) | 2022.07.06 |
---|---|
[백준/JS] 2753 윤년 (0) | 2022.07.06 |
[백준/Python] 2075번 N번째 큰수 (0) | 2022.07.05 |
[백준/11286] 11286 절대값 힙 (0) | 2022.07.05 |
[백준/Python] 11279 최대힙 (0) | 2022.07.04 |