baekjoon73 백준 알고리즘 1927번: 최소 힙 문제 정보 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 핵심 최소 힙을 구현하거나, 이미 구현되어 있는 Collection 을 사용하면 된다 구현하는 경우에는 클래스를 만들어서, 풀어가면 되고 이미 있는 자료구조를 사용하려면 PriorityQueue (우선순위 큐)를 사용하면 된다 나는 그래도 힙에 대해서 다시금 정리할 겸 구현하여 풀이하는 식으로 풀어 나갔다 Heap 은 완전 이진 트리로 구현되는 자료구조이기 때문에, 노드의 개수를 알면 트리의 구조를 특정할 수 있다는 특징이 있다 그.. 알고리즘/Java 2024. 4. 8. 백준 알고리즘 2110번: 공유기 설치 문제 정보 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 핵심 공유기 C개를 설치할 때, 가장 인접한 두 공유기 사이의 거리의 최대값을 구하는 것! N개의 집에 공유기 C개를 설치하고자 한다. 내 풀이의 방식은 직전에 풀었던 문제들처럼 이분 탐색을 활용하여 문제를 풀이한다. 가장 인접한 공유기 사이의 거리의 최대값을 기준으로 두고, 이에 대한 이분 탐색으로 답을 구하는 과정이다 될 수 있는 가장 인접한 공유기 사이의 거리의 최소값은 1이다. 될 수 있는 가.. 알고리즘/Java 2024. 4. 5. 백준 알고리즘 2512번: 예산 문제 정보 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 핵심 백준 알고리즘 1654번: 랜선 자르기 문제 정보 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이 blog.dduneon.me 위 문제와 동일한 방식으로 풀이할 수 있는 이분탐색 문제 중 하나! 각 예산 요청에 대하여 가능한 최대 총 예산을 가지도록 하는 예산의 상한액을 구하는 문제.. 알고리즘/Java 2024. 4. 5. 백준 알고리즘 2869번: 달팽이는 올라가고 싶다 문제 정보 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B = (V.. 알고리즘/Java 2024. 4. 4. 백준 알고리즘 1654번: 랜선 자르기 문제 정보 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 핵심 이분 탐색을 떠올려야 한다 내가 찾고자 하는 것은 N개의 랜선을 만들 수 있는 랜선의 최대 길이 이다 모든 길이를 탐색하여 랜선을 잘라보고, 최대 경우를 구하는 것은 불가능하므로 자연스럽게 이분 탐색을 시도해야 한다 우리가 흔히 사용했던 이분 탐색은 인덱스로 특정 수를 찾는 탐색을 많이 사용했다. 그래서인지 새로운 관점을 적용하기가 조금 어려웠던 문제라고 생각한다 풀이에서 min, max, mid 라는 변수가 등장한다.. 알고리즘/Java 2024. 4. 4. 이전 1 2 3 4 5 6 7 ··· 15 다음