no image
C++ [Algorithm] - 백준 10815 숫자 카드
문제입출력문제 요약63210-10 이렇게 입력 값이 주어진다면 109-52345-10위 배열이 입력 값에 포함된다면 1출력 아니면 0을 출력하면 된다. 단순하게 2중 반복문으로 탐색을 할 순 있지만 카드의 수가 500,000개로 (n)^2이면 시간제한에 넘기 때문에 이진 탐색으로 풀어야한다는 걸 알 수 있다. 1. 이진 탐색은 정렬이 필수적으로 필요하기 때문에 입력 배열을 정렬한다.-1023610이 배열을 갖고 입력값마다 존재한지 아닌지를 판단해주면 된다.코드#include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int N, M, temp; vector v1; ..
2024.08.01
no image
자바 [Algorithm] 이분탐색 - 백준 20444 색종이와 가위
1. 문제   2. 접근법색종이를 N번 잘랐을 때, K개의 색종이를 만들어 낼 수 있는가? 가로로 X번, 세로로 Y번을 자르면 (X+1) * (Y+1) 개의 색종이가 생기게 된다. 가로로 색종이를 자를 횟수를 X라고 하면 세로로 색종이를 자를 횟수는 N-X가 된다. 즉 (X+1) * (N-X+1) = K를 만족하는 X값을 찾는다. 이분탐색을 진행하기 위해 mid = x y = N-x  3. 코드package week09;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Baek20444 { public sta..
2024.06.06
no image
자바 [Algorithm] 이분탐색 - 백준 11687 팩토리얼 0의 개수
1. 문제  2. 접근법0이 만들어지는 조건은 2*5가 존재할 때 0이 만들어진다.2는 2의 배수마다 생성되므로 5의 개수보다 항상 많아 5의 개수에 따라 0의 개수가 정해진다.5! = 120 - 2^3 * 3 * 5 : 1개10! = 3628800 = 2^8 * 3^4 * 5^2 * 7 : 2개소인수분해로 5의 개수를 구하면 된다 3. 코드package week09;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Baek11687 { public static void main(String[] args) throws IOException { Buffer..
2024.06.05
no image
자바 [Algorithm] 이분탐색 - 백준 1920 수 찾기
1. 문제 2. 접근법두 개의 배열을 비교하여 M의 배열에 N값이 있으면 1, 없으면 0을 출력하는 문제이다.이 문제도 앞 시간에 배운 Arrays.binarySearch 함수를 사용하면 쉽게 풀 수 있다.하지만 binarySearch를 사용하기 위해서는 정렬이 되있어야 하므로 N의 배열은 정렬해야한다. 3. 코드package week09;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Baek1920 { public static void main(String[] ..
2024.06.02
no image
자바 [Algorithm] 이분탐색 - 백준 10815 숫자 카드
1. 문제 2. 접근법간단한 문제이다. 4번째 카드들이 2번째 줄에 있는지 없는지 확인하는 문제!탐색 문제이고 시간 복잡도를 계산하면 2중 반복문은 안되는 걸 알 수 있었는데 대충 풀다보니 시간 초과가 나서 실패했다.Arrays.binarySearchd의 메서드를 사용하니 다시 풀 수 있었다~ Arrays.binarySearch 사용법1. 정렬된 배열에서 특정 값을 찾기 위해 사용된다.2. 이 함수는 배열에 해당 값이 있는 경우 그 인덱스를 반환하고, 없는 경우 음수를 반환한다.3. 코드package week09;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.A..
2024.06.01
no image
자바 [Algorithm] 이분탐색 - 백준 4158 CD
1. 문제2. 접근법1. 예제 입력 마지막을 보면 0 0 을 입력하면 종료가 된다. 따라서 while문 전체로 수행하고 n이 0, m이 0을 입력 받을 때 종료시켜야 한다.2. 상근 = {1,2,3} 선영 = {1,2,4} 오름 차순으로 정렬 되어있기 때문에 이분 탐색 알고리즘이 적합하다.3. 상근의 인덱스를 i로, 선영을 j로 잡고 값들이 작으면 인덱스 ++4. 상근의 값이 크면 선영이 인덱스를 ++5. 선영의 값이 크면 상근의 인덱스를 ++ 3. 코드 package week09;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;pub..
2024.05.31