상위 150개 인터뷰하드

데이터 스트림에서 중앙값 찾기

'데이터 스트림에서 중앙값 찾기' 문제에 대한 자세한 가이드 및 Python 구현입니다.

문제 설명

하드

중앙값은 정렬된 정수 목록의 중간 값입니다. 목록의 크기가 짝수인 경우에는 중간 값이 없으며 중앙값은 두 중간 값의 평균입니다.

MedianFinder 클래스를 구현합니다.

- MedianFinder() MedianFinder 객체를 초기화합니다.

- addNum(num: int) 데이터 스트림의 정수 num을 데이터 구조에 추가합니다.

- findMedian() -> float 지금까지의 모든 요소의 중앙값을 반환합니다.

입력은 작업 및 인수 목록입니다. 결과 목록을 반환하는 medianFinder(operations: list, arguments: list) -> list 함수를 구현합니다(생성자/addNum의 경우 None, findMedian의 경우 float).

제약
  • -10^5 <= num <= 10^5
  • There will be at least one element in the data structure before calling findMedian
  • At most 5 * 10^4 calls will be made to addNum and findMedian

Example 1
Input
operations = ["MedianFinder", "addNum", "addNum", "findMedian", "addNum", "findMedian"], arguments = [[], [1], [2], [], [3], []]
Output
[None, None, None, 1.5, None, 2.0]
Explanation

Initialize. Add 1, 2. Median is 1.5. Add 3. Median is 2.0.

Need a Hint?
세트나 힙과 같은 힙/우선순위 큐 관련 데이터 구조를 사용하는 것을 고려해보세요.
Edge Cases to Watch
  • 빈 입력 구조
  • 단일 요소 입력
  • 큰 수치 범위

해결할 준비가 되셨나요?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

편집기에서 열기
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.