반응형 알고리즘250 [백준][Python] 11286번 절댓값 힙 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 코드 import sys import heapq n = int(input()) heap = [] for i in range(n): x = int(sys.stdin.readline()) if x == 0: if heap: print(heapq.heappop(heap)[1]) else: print(0) else: heapq.heappush(heap,(abs(x),x)) 설명 heap에 push를 할 때 (절댓값, 원래값)을 같이 넣어줘서 만약 절.. 2022. 2. 19. [백준][Python] 14425번 문자열 집합 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 코드 import sys N, M = map(int, input().split()) arr = dict() cnt = 0 for _ in range(N): s = sys.stdin.readline() arr[s] = True for _ in range(M): inp = sys.stdin.readline() if inp in arr.keys(): cnt+=1 print(cnt) 설명 딕셔너리를 사용하여 구현했다. 파이썬 딕셔너리는 해.. 2022. 2. 18. [백준][Python] 11279번 최대 힙 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 코드 import sys import heapq n = int(input()) heap = [] for i in range(n): a = int(sys.stdin.readline()) if a == 0: if heap: print((-1)*heapq.heappop(heap)) else: print(0) else: heapq.heappush(heap,(-1)*a) 설명 heapq 모듈을 사용했다. heappop() 함수, heappush() 함수.. 2022. 2. 17. [백준][Python] 1918번 후위 표기식 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 코드 inp = input() stack = [] answer = [] for i in inp: if i == '(': stack.append(i) elif i == ')': while stack and stack[-1] != '(': answer.append(stack.pop()) if stack[-1] == '(': stack.pop() elif i == '+' or i == '-': while stack and stack[-1] != '(': answe.. 2022. 2. 17. 이전 1 ··· 54 55 56 57 58 59 60 ··· 63 다음 반응형