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
no image
자바 [Algorithm] 누적합 - 백준 3020 개똥벌레
1. 문제  2. 접근법1. 홀수번째는 석순, 짝수번째는 종유석이 입력된다.2. 석순과 종유석 배열에 대한 누적합을 계산하여 높이 i번째까지 석순과 종유석의 개수를 저장한다.3. 부딪히는 장애물 수를 계산한다.int[] arr = new int[H+1];for (int i = 1; i 4. 최소 높이의 개수를 계산한다. 3. 코드package week08;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Baek3020 { public static void main(String[] args) throws IO..
2024.05.30
no image
자바 [Algorithm] 슬라이딩 윈도우 - 백준 11465 소가 길을 건너간 이유 5
1. 문제 2. 접근법처음엔 누적합 방식으로 접근하려고 했지만 감이 안잡혀 가장 생각나는 슬라이딩 윈도우 방식을 사용했다. [슬라이딩 윈도우를 사용하여 최소 고장난 신호등 개수 계산] for 루프를 사용하여 구간을 오른쪽으로 한 칸씩 이동하면서 각 구간의 고장난 신호등 수를 계산새로운 요소를 더하고, 이전 요소를 뺀다현재 구간의 고장난 신호등 수를 min_count와 비교하여 최소값을 갱신 3. 코드package week08;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Baek14465 { public ..
2024.05.29
no image
자바 [Algorithm] 누적합 - 백준 11659 구간 합 구하기 4
1. 문제  2. 접근법입력1번째 줄 : N, M2번째 줄 : N+1 크기의 배열 값3번째 줄 이후 : 1~3구간의 합, 2~4구간의 합, 5~5 구간의 합 누적합 알고리즘은 누적 합 배열을 만들고 원하는 구간의 값을 출력하는 것이 편하다. [기본 배열]012345054321 [누적 합 배열]012345059121415 1~3구간의 합은5 + 4 + 3 = 12이다.출력하기 위해서는 누적합 배열에서 [3] - [1-1] = 12 값을 출력 2~4 구간의 합은 4 + 3 + 2 = 9이다.출력하기 위해서는 누적합 배열에서 [4] - [2-1]  = 14 - 5 = 9  따라서 i, j로 취급하여누적합배열[i] - 누적합배열[j-1]을 하면 원하는 값이 나온다. 3. 코드package week08;impor..
2024.05.27
no image
자바 [Algorithm] 투포인터 - 백준 2003 수들의 합 2
1. 문제 2. 접근법배열 구간에서 특정 값이 나올 경우의 수를 구하는 문제이므로 투포인터 문제이다.A 배열에 1 1 1 1값들을 저장한 후Start_Pointer와 End_Pointer를 만들고 1. 현재 값이 M 값보다 같거나 클 경우 Start_Pointer를 뺀 후 증가시킨다.2. End_Pointer가 배열의 끝에 도달할 경우 종료3. 현재 값이 M 값보다 작거나 같을 경우 End_Pointer를 더한 후 증가 시킨다.4. 현재 값이 M 값과 같을 경우 count ++를 해준다.    3. 코드package week08;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import ja..
2024.05.27
no image
자바 [Algorithm] 누적합 - 백준 2167 2차원 배열의 합
1. 문제 2. 접근법1. 배열을 [n+1][m+1] 만큼 선언해준다.2. 배열에 값을 채운다.3. K개 값을 받는다.4. x1,y2 ~ x2,y2의 값을 구한다. 01231124281632 ex] (1,1) 부터 (2,3)까지 합을 구한다.for(int i = x1; i 3. 코드package week08;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Baek2167 { public static void main(String[] args) throws IOException { Buffered..
2024.05.24
no image
자바 [Algorithm] 누적합 - 백준 2851 슈퍼 마리오
1. 문제2. 접근법마리오는 받은 점수의 합을 최대한 100에 가깝게 만든다고 한다.하지만 100에 가까운 수가 2개라면 ex) 98, 102 마리오는 큰 값을 선택한다. 1. 반복문으로 1~10까지 sum에 점수를 더한다.2. if(sum > 100)이 되면3. 100 - (sum - mario[i]) 3. 코드package week08;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Baek2851 { public static void main(String[] args) throws IOException { BufferedReader buffered..
2024.05.24