Problem Solving/이진 탐색

https://www.acmicpc.net/problem/2143 2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1 ≤ m ≤ 1,000)이 주어지고, 그 www.acmicpc.net 이문제는 Map과 이분탐색 두가지 방법으로 풀 수 있다. 나는 Map이 더 간단해보여 Map을 이용했다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException{ Bu..
https://www.acmicpc.net/problem/2792 2792번: 보석 상자 보석 공장에서 보석 상자를 유치원에 기증했다. 각각의 보석은 M가지 서로 다른 색상 중 한 색상이다. 원장 선생님은 모든 보석을 N명의 학생들에게 나누어 주려고 한다. 이때, 보석을 받지 못하 www.acmicpc.net check()함수 만드는 것이 꽤 생각을 요하는 문제 질투값이 널널하다면 그냥 true을 뱉으면 된다. 왜냐면 다음 탐색에서 정답을 찾기 때문에 최대한 빡세게 검사하고 보석을 다시 분배에서 사람수만큼의 집합으로 만든다고 생각하면됨 다시 문제를 보니 보석을 주지 않아도 되기 때문에 간단한 문제였다.. import java.util.*; import java.io.*; public class Main ..
https://www.acmicpc.net/problem/2343 2343번: 기타 레슨 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net check함수의 반복문 처음에 각 영상이 디스크크기를 초과할 경우가 있다는 것을 확인해주지 않아서 풀이시간이 꽤 걸렸다. import java.util.*; import java.io.*; public class Main { public static int n; public static int m; public static int[] input; public static boolean check(int ..
https://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static int n; public static int limit; public static int[] input; public static boolean check(int num){ int sum=0; for(int i=0; i
https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static int n; public static int m; public static Integer[] houses; public static boolean check(int dist){ int count =1; int cur =..
https://www.acmicpc.net/problem/6236 6236번: 용돈 관리 현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static long[] money; public static int n; public static int m; public static boolean checkPossible(long cash){ int count=1; long mo=cash; for(int i=0; im) return..
https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static long[] lansun; public static int n; public static int m; public static long search(){ long l = 0l; long r = 1l
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static long[] wood; public static int n; public static int m; public static long search(){ long l = 0l; long r = 1_000_000_000l; long h ..
윤재에요
'Problem Solving/이진 탐색' 카테고리의 글 목록