java52 백준 알고리즘 1715번: 카드 정렬하기 문제 정보 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 핵심 답이 도출되는 과정을 이해하면 문제를 쉽게 풀 수 있다! 간단히 설명하면, 이 문제는 카드 묶음 중에서 가장 작은 카드 묶음 두 개를 더해 가면서 문제를 풀이하면 된다 카드 묶음이 5장 있다고 가정해 보자, 우리는 카드 묶음 두 개를 고를 때 가지고 있는 묶음 중에서 가장 작은 2개의 묶음을 선택하면 된다 위처럼 모든 카드 묶음을 합쳐서 하나의 묶음으로 만들 때, (10, 20), (30, 30), (40, 50), (60, 90).. 알고리즘/Java 2024. 4. 10. 백준 알고리즘 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 ··· 11 다음