_

Always be tactful

heap 2

자료구조 힙(Heap), 자바에 TCO가 없는 이유는?

들어가며자바에서는 java.util.PriorityQueue라는 표준 라이브러리에서 우선순위 큐(최소 힙)를 편리하게 제공하고 있다. 그럼에도 불구하고 힙의 동작 원리를 직접 파고들어 구현 방법까지 알아두는 것은 단순히 라이브러리 사용을 넘어, 자료구조에 대한 더 깊은 이해를 돕는다.힙(Heap)은 우선순위 큐 구현부터 다익스트라, 프림 알고리즘 등 다양한 곳에 활용되는 중요한 자료구조다. 이번 포스트에서는 "힙이란 무엇이고, 어떻게 동작하며, 왜 그렇게 동작하는지" 그리고 "배열을 사용한 직접 구현 과정과 최적화 가능성"까지, 여러 궁금증을 바탕으로 알기 쉽게 설명하고자 한다.힙(Heap)이란 무엇인가?힙은 완전 이진 트리의 한 종류이며, 다음과 같은 중요한 특징을 지닌다.힙 속성(Heap Proper..

[Java] BOJ 13909: 창문 닫기와 힙 메모리 한도

요즘 변수명을 의미 있게 작성하려고 노력하는 중이다. 물론 알고리즘을 풀 때는 편의상 내가 알 수 있을 정도로만 작명한다. 동시에 메서드는 최대한 빼서 구현하는 편인데, 특별한 이유는 없고 메서드를 만드는 것에 익숙해지고 싶어서다.창문 닫기 문제는 9단계에 위치했지만 앞선 단계들보다 쉽다. 그래서 크게 생각할 점 없이 코드를 짤 수 있었다.// https://www.acmicpc.net/problem/13909import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Problem13909 { public static void main(String[] args) throws ..