🌵우선순위 큐(Priority Queue) 란? 큐(Queue)는 먼저 들어오는 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조 우선순위 큐(Priority Queue)는 들어온 순서와 상관없이, 우선순위가 높은 데이터가 먼저 나가는 형태의 자료구조 일반적으로 힙(Heap) 구조를 사용해 구현한다. * 힙으로 구현하는 이유는? - 힙의 경우 삭제나 삽입 과정에서 모두 부모와 자식 간의 비교만 계속 이루어진다. 이진 트리의 높이가 하나 증가할 때마다 저장 가능한 자료의 개수는 2배 증가하며, 비교 연산 횟수는 1회 증가 즉, 삭제나 삽입 모두 최악의 경우에는 O(log2n)의 시간 복잡도를 가진다. 이처럼 배열이나 연결 리스트가 삭제에서는 시간 복잡도의 우위를 점할지라도,..
https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 👩💻문제 이해 합이 최소가 되도록 해야하기 떄문에 heappop 두 번으로 가장 작은 숫자를 가진 card 두장을 뽑은 후, 두 장을 더한 값을 다시 heappush로 넣어주면 된다. 👩💻heappop, heappush, heapify를 사용한 코드 : 성공🌈 # 15903번 : 카드 합체 놀이 from heapq import heappop, heappus..
1. html에서 흐르는 텍스트를 구현할 부분 설정 글씨가 잘 보이지 않는 세군데에다가 다음의 코드를 추가해준다. 예를 들면 내 코드는 다음과 같다. PROWDMON∦ HYEILY 2. CSS 정의 원하는 곳에 class를 설정해주었다면, 해당 class를 각각 CSS애서 정의 해주어야 한다. 내가 원하는 것은 1. 넘치는 글자들 움직이도록 만들기 2. 마우스를 올렸을 때 색깔이 변함과 동시에 움직임 잠시(마우스가 올라가 있는 동안) 멈추기 flow-text .flow-text { display: flex; /* 텍스트를 가로로 나열하기 위해서 */ flex: 0 0 auto; /* 화면이 줄어들었을때 항목들의 사이즈가 줄어들지 않게 하기위해 */ white-space: nowrap; /* 텍스..
https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 👩💻문제 이해 👩💻leftheap 과 rightheap의 크기가 같아질 때 중간값 반환 : 성공🌈 import heapq n = int(input()) leftHeap = [] rightHeap = [] for i in range(n): num = int(input()) if len(leftHeap) == len(rightHeap): heapq.heappush(leftHeap,..
https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 👩💻문제 이해 힙 구조를 이용해 N x N 개의 숫자 중 N번 째 큰 수를 찾는 문제 숫자 자체를 찾는 것은 어렵지 않지만, 시간과 메모리를 고려하기 위해 힙 구조를 잘 활용해야 한다. 메모리 제한이 12mb이므로 입력값을 모두 저장해서 사용할 수 없다. 👩💻heapq 모듈을 사용해 절댓값 힙 구현 : 메모리 초과☠️ from heapq import heappop, heappush n = int(in..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 👩💻heapq 모듈을 사용해 절댓값 힙 구현 : 성공🌈 from heapq import heappop, heappush import sys n = int(input()) heap = [] for i in range(n): num = int(sys.stdin.readline()) if num != 0: heappush(heap,(abs(num), num)) else: try:..