no image
JAVA [Algorithm] - 백준 6236 용돈 관리
📝문제 설명 📢입출력 예시 ✏️문제 풀이K금액을 M번 출금하여 N일 동안 금액을 사용하는 문제 1. 완전 탐색 접근이 안되는 이유처음에는 완전 탐색으로 접근하려고 했으나 입력의 크기보고 다른 방법을 생각해봤다.N일 동안 사용하려는 N값의 범위는 최대 100,000까지이고,사용할 금액은 10,000이다.100,000 X 10,000 = 1,000,000,000 = 10^910^9는 약 10초동안 수행되기 때문에 시간초과가 날 가능성이 매우 높다. 2. 이진탐색으로 접근left 값을 N일 동안 사용하려는 값 중 최대 값으로 선정right 값을 N일 동안 사용하려는 값의 합으로 선정하여 mid = (left + right) / 2mid 값을 사용하여 이진탐색을 진행했다. mid값을 기준으로 몇번 출금하여 ..
2025.07.21
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