heap 2

[백준 11286] 절댓값 힙

문제 이번 문제는 전체 연산을 반복할 수를 입력받은뒤, 값을 저장하거나 출력하는 문제이다. 0이 입력되면 배열에 저장된 절대값이 가장 작은 값을 출력한다. 이 때 저장된 절대값이 작은것이 여러개면 그냥 가장 작은 값을 출력한다. 0이 들어왔는데 배열이 비어있는 상태면 0을 출력하도록 한다. 0 이외의 수가 입력 되었을 경우에는 입력된 값을 배열에 저장한다. 알고리즘 1. 반복할 횟수를 입력받는다 2. 양수를 저장하는 우선순위 큐, 음수를 저장하는(단, 양수용 큐는 내림차순, 음수용은 오름차순) 우선순위 큐를 선언하여 0 외의 값이 들어왔을 때 저장한다 3. 0이 들어왔을 경우 각 음수,양수 큐가 비어있는 지 확인하고 둘다 비어있으면 0, 하나만 비어있으면 비어있지 않은 것에서 가장 작은 값을 출력한다 4..

Algorithm 2022.06.16

[백준 1927] 최소 힙

문제설명 첫 줄에 연산의 수를 입력 받고, 나머지 수들을 입력 받는다. 이때 0이 들어올 때는 힙에서 가장적은 수를 출력 시킨다. 만약 힙이 없는 경우에는 0을 출력한다. 0외의 숫자가 입력되는 경우에는 힙에 넣는다. 알고리즘 heap 선언, list 선언 총 숫자의 갯수 입력 0인지 여부 판단 후 list에 원소의 수를 세어보고 0이면 0출력, 그렇지 않는 경우 heap에서 꺼냄 0이 아닌경우 heap에서 가장 작은 수 출력 코드 import heapq as hq import sys temp=[] num= int(sys.stdin.readline()) for i in range (num): n= int(sys.stdin.readline()) if n==0: #0이 들어온 경우 if(len(temp))=..

Algorithm 2021.08.01
1