목록문제 (388)
sm 기술 블로그
import java.util.*; import java.io.*; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); PriorityQueue que = new PriorityQueue(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < N; i++) { int X = sc.nextInt(); if(X==0) { if(que.isEmpty()) { sb.append(0).append("\n"); } else { sb.append(que.remove()).append("\n"); } } else ..
from queue import PriorityQueue import sys input = sys.stdin.readline N = int(input()) que = PriorityQueue(maxsize=N) result = [] for _ in range(N): X = int(input()) if X == 0: if que.empty(): result.append("0") else: result.append(str(que.get())) else: que.put(X) print("\n".join(result)) 문제요약 값을 입력하는데 0이면 현재 입력된 값 중에 가장 작은 값을 출력하라.(오름차순 필요) 설명 전 단계 문제를 풀었다면 매우 간단한 문제 https://smhope.tistory.com/..
import java.util.*; import java.io.*; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); int N = sc.nextInt(); PriorityQueue que = new PriorityQueue(); for (int i = 0; i < N; i++) { int X = sc.nextInt(); if(X==0) { if(que.isEmpty()) { sb.append(0).append("\n"); } else { sb.append(-que.remove()).append("\n"); } } else..
from queue import PriorityQueue import sys input = sys.stdin.readline N = int(input()) que = PriorityQueue(maxsize=N) result = [] for _ in range(N): X = int(input()) if X == 0: if que.empty(): result.append("0") else: result.append(str(-que.get())) else: que.put(-X) for val in result: print(val) 문제요약 값을 입력하는데 0이면 현재 입력된 값 중에 가장 큰 값을 출력하라.(내림차순 필요) 설명 우선순위 큐를 이용한다. 유선순위 큐에 대해서는 다음을 참고하자. https://..