[백준 1655] 가운데를 말해요, 우선순위 큐: Priority Queue, Heap. feat.JAVA
·
Programming/Algorithm
문제소개[문제]정수를 입력할 때마다 그때까지 입력된 정수 중 중앙값을 출력하는 문제다.우선순위 큐(Priority Queue)를 활용하여 풀어야 한다. 자료구조에 대한 이해가 덜 된 상태에서 문제를 푸느라 뻘짓을 많이 했지만 그만큼 배운게 많다. 자료구조 간단 정리자료구조반환데이터스택(Stack)제일 나중에 넣은 데이터(LIFO)큐(Queue)제일 처음 넣은 데이터(FIFO)우선순위 큐(Priority Queue)가장 우선순위가 높은 데이터 스택과 큐는 입력과 출력을 다루는 것이 간단해보이지만 우선순위 큐는 그렇지 않다. 우선순위와 관계없이 값을 입력하지만 우선순위가 가장 높은 값을 출력해야 한다. 따라서 값을 입력할 때 기존의 값들과 우선순위를 비교하는 연산이 필요하다. 이때 힙을 이용한다. 힙은 트..
[백준 12865] 평범한 배낭, 동적 계획법:Dynamic Programming
·
Programming/Algorithm
문제 소개[문제]동적 계획법(Dynamic Programming) 문제다. 무게와 가치가 있는 물건을 한도가 있는 배낭(knapsack)에 넣는 것은 대표적인 동적 계획법 알고리즘 문제이다. 사실 문제 풀이법을 찾아보기 전까지는 동적 계획법을 몰라서 아래처럼 무게 별 가치로 정렬 후 더하는 방식으로 짰다가 바로 틀렸다. (ㅜㅜ) 그리디 알고리즘은 이 경우에 알맞지 않다.더보기import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;class Stuff { int weight = 0; int..