[백준/Python] 2075. N번째 큰 수
·
코딩테스트/BAEKJOON
🍀 문제유형: 최소힙🍀 문제설명 (링크 참조) https://www.acmicpc.net/problem/2075 🍀 풀이코드 - 첫 시도는 최대 힙 만들어서 n번째 뽑아야지! 했는데 메모리 초과 ~.~import heapq as hqn = int(input())h = []for _ in range(n): tmp = list(map(int, input().split())) for t in tmp: hq.heappush(h, -t)print(-h[n-1]) - 그래서 뭐 어떻게 해야 되지.. 하다가, 최소힙을 각 행마다 만드는 것도 무리일 것 같고,, 고민하다가 해설집 힌트 조금 봤다. n번째로 큰 수는, 가장 큰 수 n개 중에 제일 작은 값이다의 다른 말.. 와우 아이디어,,-..
[프로그래머스/Python] 알고리즘고득점Kit-힙(Heap)-이중우선순위큐
·
코딩테스트/프로그래머스
📌 문제링크https://school.programmers.co.kr/learn/courses/30/lessons/42628# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 📌 문제설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요.  # 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입..
[알고리즘/Python] 힙(Heap)
·
알고리즘
📌 힙 힙은 우선순위 큐를 위해 만들어진 자료구조로, 완전 이진트리의 일종이다.여러 값 중 최대/최소 값을 빠르게 찾아내도록 만들어진 반정렬 상태이다. 힙에서는 중복된 값을 허용한다. 최대/최소 값을 찾기 위해서 O(n)의 시간이 걸리지만, 힙을 사용하면 O(logN) 만큼 소요된다.  ✅ 반정렬 상태 (느슨한 정렬 상태)큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다.부모 노드의 키 값이 자식 노드의 키 값보다 항상 크거나 작은 이진 트리이다.✅ 우선순위 큐들어간 순서와 상관 없이높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리만약 두 원소가 같은 우선순위를 가진다면 큐에서 그들의 순서에 의해 처리✅ 완전 이진트리 자식 노드가 최대 2개만 채워진다. 우선순위 큐 순서대로 채..