JAVA 130

[JAVA] 백준 2343 기타 레슨_이분탐색

https://www.acmicpc.net/problem/2343 접근 :   - 블루 레이 크기를 이분 탐색을 통하여 찾는다.  - left = 입력 배열의 max 값, right = 1,000,000,000 으로 지정 후 탐색을 진행한다.   - 탐색이 완료되는 곳을 정답으로 출력한다.   코드구현 :  import java.io.*;import java.util.*;public class Main { private static boolean calFunc(int[] nums, int mid, int target ){ int temp_res = 0; int count = 1; for(int num : nums) { if(temp_res +..

JAVA/Coding Test 2024.06.05

[JAVA] 백준 2512 예산_이분탐색

https://www.acmicpc.net/problem/2512 접근 :   - left 를 0, right 를 입력 받은 예산의 최대값으로 지정한다.  - 이분 탐색을 진행하면서 예산이 최대치를 이하이면 left 를 증가시키고 초과하면 right를 감소 시킨다.  - 탐색이 완료되는 곳을 정답으로 출력한다.   코드구현 :  import java.io.*;import java.util.*;public class Main { private static boolean calFunc(int[] nums, int mid, int target ){ int temp_res = 0; for(int num : nums) temp_res += (num

JAVA/Coding Test 2024.06.05

[JAVA] 백준 1654 랜선자르기_이분탐색

https://www.acmicpc.net/problem/1654  접근 :   - 랜선을 특정한 이분 탐색을 통하여 자른다.  - 만약 자른 갯수가 목표치 이상이면, left = mid + 1 보다 작으면 right = mid - 1 로 끝까지 진행한다.   - 탐색이 완료되는 곳을 정답으로 출력한다.   코드구현 :  import java.io.*;import java.util.*;public class Main { private static boolean calFunc(int[] nums, long mid, int target ){ long temp_res = 0; for(int num : nums){ temp_res += num / mid; ..

JAVA/Coding Test 2024.06.04

[JAVA] 백준 3273 두 수의 합_투포인터

https://www.acmicpc.net/problem/3273  접근 :   - 들어온 배열을 오름차순으로 정렬한다.  - 좌측과 우측 끝에 포인터를 두고 두 수의 합이 x가 되는지 확인한다. 만약 x 보다 작다면 left 를 1 올리고 크다면 right를 1 내린다.  - 좌측과 우측 포인터가 만나기 직전까지 수행한다.  코드구현 : import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); i..

JAVA/Coding Test 2024.06.04

[JAVA] 백준 2110 공유기 설치_이분탐색

https://www.acmicpc.net/problem/2110  접근 :   - 들어온 배열을 오름차순으로 정렬한다.  - 정답이 되는 사이 간격을 적용해, 공유기 설치 갯수가 많으면 간격을 늘리고 적으면 간격을 좁힌다.   - 탐색이 완료되는 곳을 정답으로 출력한다.   코드구현 : import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] temp = br.readLine()...

JAVA/Coding Test 2024.06.03

[JAVA] 백준 2805 나무 자르기_이분탐색

https://www.acmicpc.net/problem/2805  접근 :   - 정답이 있을 수 있는 범위내로 left, right 를 설정 후 이분 탐색을 실행한다.  - 예상 답안이 목표하는 값 이상일 때, left를 mid + 1 로 이동시킨다.  - 예상 답안이 목표하는 값 미만일 때, right를 mid - 1 로 이동시킨다.  - left    코드구현 : import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(Sys..

JAVA/Coding Test 2024.06.03

[JAVA] 백준 2470 두 용액_투포인터

https://www.acmicpc.net/problem/2470 접근 :   - 들어온 배열을 오름차순으로 정렬한다.  - 왼쪽과 오른쪽 끝에 포인터를 두고, 합이 양수이면 오른쪽 포인터를 1내리고 음수 이면 왼쪽 포인터를 1 올린다.  - 선택 한 두 용액이 0 이되면 출력을 하고, 0 이 아니면 0에 가까운 수를 갱신한다.   코드구현 :  import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..

JAVA/Coding Test 2024.06.03

[JAVA] 백준 7795 먹을 것인가 먹힐 것인가_정렬

https://www.acmicpc.net/problem/7795  접근 :   - a 집합과 b 집합을 오름차순으로 정렬한다.  - a 와 b 에서 하나씩 꺼내서 비교한다. 만약 a 가 작다면 a가 현재 b보다 클 때까지 다음 수를 꺼낸다.   - 만약 a가 b 보다 큰 경우에는 정답의 갯수를 a 의 전체 갯수 - 현재 인덱스 로 더한다.  - a 와 b 둘 중 한 집합의 원소를 모두 꺼낼 때 까지 반복 후 결과를 출력한다.     코드구현 :  import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = ..

JAVA/Coding Test 2024.06.03

[JAVA] 백준 과제는 끝나지 않아!_스택

https://www.acmicpc.net/problem/17952  접근 :   - 과제가 들어온 경우 즉시 완료 되는지 확인한다.  - 즉시 완료가 되지 않는 경우, 현재 진행중인 과제에 추가한 후 1회 수행한다.(이전에 진행중인 과제가 있는 경우 stack에 보관)  - 과제가 들어오지 않은 경우, 현재 진행중인 과제가 있으면 진행 후 완료 여부를 확인한다.  - 과제가 완료 될 때마다 점수를 더한 후 출력한다.  코드구현 : import java.io.*;import java.util.*;public class Main { static class Subject{ private int score; private int time; public Subject(..

JAVA/Coding Test 2024.05.31

[JAVA] 프로그래머스 연습 징검다리

https://school.programmers.co.kr/learn/courses/30/lessons/43236 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 :   - 이분 탐색을 사용  - 징검다리에서 정답이 되는 값을 넣어서 빼낸 돌의 갯수가 n개인지 확인  - 빼낸 돌의 갯수가 많다면 예상 정답 값을 내리고, 빼낸 돌의 갯수가 적다면 정답의 값을 올린 후 계속 탐색 진행  - 정답에 도착하면 while 문을 탈출하므로 마지막 값을 정답으로 갱신한 후 출력   코드구현 :  import java.util.*;class Solution { /..

JAVA/Coding Test 2024.05.30