Yeji's Tech Notes
반응형
article thumbnail
냅색 알고리즘 (Knapsack Algorithm)개념과 원리
알고리즘 2023. 3. 21. 17:51

[ 목차 ] 1. 개요 2. 냅색 알고리즘 개념 3. 냅색 알고리즘 원리 개요 특정 가중치와 할당된 값을 가진 항목 집합이 주어지면 가중치 제약 내에 머무르면서 배낭의 값을 최대화하는 것이 목표인 시나리오에서 유래된 알고리즘 입니다. 냅색 알고리즘은 optimization 카테고리에 속하는 DP(Dynamic Programming) 문제 입니다. *optimization DP(Dynamic Programming) 해법으로는 총 두가지가 있습니다. 1. Overlapping subproblem 2. Optimal substructure 여기서 냅색 알고리즘은 2번째 Optimal substructure은 작은 문제의 최적 해법으로 원래 문제의 최적 해법을 구하는 방식 입니다. 문제 예시를 들어보면, 마리는..

[Java] 우선순위 큐 (PriorityQueue) 개념 , Comparable
언어/JAVA 2023. 2. 2. 21:50

우선순위 큐 (Priority Queue) 우선 순위 힙을 기반으로 하는 무제한 우선 순위 대기열입니다. 우선순위 대기열의 요소는 사용되는 생성자에 따라 natural ordering에 따라 정렬되거나 대기열 구성시 제공되는 Comparator에 의해 정렬됩니다. 우선 순위 대기열에서는 null 요소를 허용하지 않습니다. natural ordering에 의존하는 우선 순위 큐는 또한 비교할 수 없는 객체의 삽입을 허용하지 않습니다. 우선순위 큐 선언 import java.util.PriorityQueue; //import //int형 priorityQueue 선언 (우선순위가 낮은 숫자 순) PriorityQueue priorityQueue = new PriorityQueue(); //int형 prior..

반응형