[파이썬/python] 백준 1927 - 최소 힙

2025. 1. 21. 13:01·알고리즘
반응형

문제

https://www.acmicpc.net/problem/1927


문제 설명

  1.   최소 힙 구조를 이용하여 아래 연산을 지원하는 프로그램을 작성한다.
    1. 배열에 자연수 x를 넣는다.
    2. 배열에서 가장 작은 값을 출력하고 그 값을 배열에서 제거한다.

 


풀이

파이썬의 heapq 라이브러리를 이용한다.

  1. 수를 입력받는다.
    1. 입력받은 수가 0일 때
      1. heap 배열의 크기가 0이라면 0을 출력한다.
      2. heap 배열의 크기가 1 이상이라면 가장 작은 수를 출력한다.
    2. 입력받은 수가 0이 아닌 수일 때
      1. heap 배열에 수를 저장한다.

코드

import sys
import heapq
input = sys.stdin.readline

heap = []
N = int(input())

for i in range(N):
    temp = int(input())
    if temp == 0:
        if not heap:
            print(0)
        else:
            print(heapq.heappop(heap))
    else:
        heapq.heappush(heap,temp)

시간복잡도

  • 우선순위큐(heap)의 삽입, 삭제 시간 복잡도는 $O(logN)$이다.
  • 총 N회 반복하므로 $O(NlogN)$
  • 최악일 경우N = $10^5$이므로, $O(10^6)$의 시간복잡도를 가지게된다.
반응형

'알고리즘' 카테고리의 다른 글

[파이썬/python] 백준 29813- 최애의 팀원  (0) 2025.01.24
[파이썬/python] 백준 23757 - 아이들과 선물 상자  (0) 2025.01.24
[파이썬/python] 백준 20920 - 영단어 암기는 괴로워  (2) 2025.01.21
[파이썬/python] 백준 1706 - 크로스워드  (2) 2025.01.06
[파이썬/python] 백준 1929- 소수 구하기  (0) 2025.01.05
'알고리즘' 카테고리의 다른 글
  • [파이썬/python] 백준 29813- 최애의 팀원
  • [파이썬/python] 백준 23757 - 아이들과 선물 상자
  • [파이썬/python] 백준 20920 - 영단어 암기는 괴로워
  • [파이썬/python] 백준 1706 - 크로스워드
개골개굴
개골개굴
굶고 코딩하기
  • 개골개굴
    밥스토리
    개골개굴
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (144)
      • 알고리즘 (124)
      • Java (2)
      • 자기개발 (18)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java
    컴퓨터구조
    async
    completablefuture
    OS
    알고리즘
    Redis
    파이썬
    백준
    인프런
    컴퓨터 구조
    SMTP
    python
    작심삼일 챌린지
    springboot
  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
개골개굴
[파이썬/python] 백준 1927 - 최소 힙
상단으로

티스토리툴바