
https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 👩💻문제 이해 힙 자료구조를 이용해 문제를 푼다. 👩💻heapq 모듈을 사용한 코드 : 성공🌈 import heapq import sys n = int(input()) heap = [] for i in range(n): num = int(sys.stdin.readline()) if num != 0: heapq.heappush(heap, num) else: try: print..

https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 👩💻문제 이해 FISRT IN FIRST OUT 구조이므로 큐를 활용해 문제를 푼다. 👩💻deque 모듈을 사용한 코드 : 성공🌈 test_case = int(input()) for i in range(test_case): n,m = list(map(int, input().split( ))) imp = list(map(int, input().split( ))) idx = list(range(len..

https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 👩💻deque 모듈을 사용한 코드 : 성공🌈 import sys from collections import deque input = sys.stdin.readline N = int(input()) queue = deque([]) for i in range(N): command = input().split() if command[0] == "push_front": queue.app..

https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 👩💻문제 이해 0이 입력될 경우 가장 마지막에 들어온 숫자가 빠지게 되므로 Last In First Out 구조의 스택(stack)을 이용해 문제를 푼다. 👩💻stack 구조를 이용한 코드 : 성공🌈 import sys k = int(input()) li = [] for i in range(k): num = int(sys.stdin.readline()) if ..

https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 👩💻문제 이해 큐 자료구조를 사용하면 된다. 👩💻Python Deque를 사용한 코드 : 성공🌈 import sys from collections import deque N = int(sys.stdin.readline()) queue = deque() for i in range(N): command = sys.stdin.readline().split() if command[0]..

https://www.acmicpc.net/problem/4889 4889번: 안정적인 문자열 입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 문자열의 길이가 2000을 넘는 경우 www.acmicpc.net 👩💻문제 이해 입력된 문자열 전체에서 생각하지 말고, 기준을 잡고, 한 단위씩('{}') 끊어서 생각하면 편하다. '{}' 닫힌 형태가 나오면 안정적인 문자열인 것이다. 그래서 첫 문자가 '{'가 나올 때까지 count를 해주고 그 문자는 pop으로 빼준다음, '{'가 나오면 그때부터 다시 한 단위씩 생각하면 된다. 기준은 '{' 가 된다. 풀이법 1. 기호 '{'를 추가할 빈 리스트 sta..