목록문제/백준_파이썬 (155)
sm 기술 블로그
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: tmp = que.get() if tmp[1] 0: que.put([X, 1]) else: que.put([-X, -1]) print("\n".join(result)) 문제요약 값..
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/..
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://..
본 코드는 PyPy로 제출해야 합니다. import sys input = sys.stdin.readline N = int(input()) A = list(map(int, input().split())) LIS = [] LIS.append(A[0]) for i in range(1, len(A)): if(A[i] > LIS[-1]): LIS.append(A[i]) else: start = 0 end = len(LIS) while(end - start >= 0): mid = (start + end) // 2 if(LIS[mid] < A[i]): start = mid + 1 else: end = mid - 1 LIS[start] = A[i] print(len(LIS)) 문제요약 이분 탐색을 이용하여 가장 긴 수..