이진탐색 2

[BOJ 1654] 랜선 자르기 (Java)

문제 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 풀이 이분 탐색을 이용해 풀 수 있다. 예시 3 5 5 5 4 오영식이 이미 가지고 있는 랜선의 개수가 3개 5 5 4 내가 필요한 랜선의 개수는 5개이다. 이 조건이 충족될 때까지 이분 탐색을 진행한다. 초기 값 left = 1 right = 5 첫 번째 탐색 left = 1 right = 5 mid = 3 5, 5, 4 를 3으로 나눈 몫을 모두 더하면 랜선의..

[BOJ 1300] K번째 수 - 이분 탐색 (Java)

문제 https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 풀이 이게 왜 정답률이 높은지 모르겠다. 막상 풀면 쉬운데 접근법을 생각하기가 쉽지 않다. 구글링을 통해 힌트를 얻어서 풀었다. 예제 설명 예제는 다음과 같다. N = 3, k = 7 3 7 3*3 배열에 각각 행과 열을 곱한 값이 입력되어 있다. 1 2 3 2 4 6 3 6 9 위 값들을 일렬로 쭉 나열 하면 아래와 같다. 1, 2, 3, 2, 4, 6, 3,..