알고리즘/이진탐색(4)
-
[이진탐색] 특정 수의 갯수 찾기
package codingTest; import java.util.Scanner; public class SpecificNumber { public static void binary_find(int start, int end, int arr[], int x, int cnt) { while(startx) { binary_find(start, mid-1, arr, x, cnt); } else { binary_find(mid+1, end, arr, x, cnt); } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N =sc.nextInt(); int x = sc.nextInt(); int arr[] = ..
2022.04.08 -
[백준] 장난감 경주 19592번
문제 링크 : https://www.acmicpc.net/problem/19592 이진 탐색으로 얼만큼의 최대 부스터를 사용할지 정하는 문제이다. 부스터의 길이를 이진 탐색 대상으로 놓고 코드를 작성해보았다. package baekjoon; import java.util.Scanner; public class ToyCompetition_19592 { private static int solved(int N, int X, int Y, int v[]) { double arr[] = new double[v.length]; double min = X; //나머지 배열 중 가장 적은 값 찾아내기 (소수점 자리 안버리고) for(int i=0; iarr[i]) { min = arr[i]; } } if(min==ar..
2022.01.29 -
이진 탐색 - 재귀와 반복
반복은 코드가 직관적이라 이해가 어렵지 않았는데 재귀는 조금 시간이 걸렸다. [반복] // 반복 public class BinaryTree { private static int searchTree(int arr[], int key) { int start = 0; int end = arr.length-1; int ans = 0; while(start key) { end = mid; // System.out.println(start+" "+end); } else { return mid; } } return -1; } public static void main(String[] args) { int data[] = {2,3,5,8,10,15,21,26}; int number = 21; int ans = sear..
2022.01.24 -
[백준] 나무 자르기 2805번
문제 출처 : https://www.acmicpc.net/problem/2805 package baekjoon; public class CuttingTree_2805 { private static int findHeight(int n, int m, int tree[]) { int ans = -1; int cutting[] = new int[20]; for(int i=0; i
2022.01.23