풀이
- 해당 문제를 푼 이유는 그냥 이분 탐색 문제여서 풀었으며
- 특징적인 것을 확인했다.
- 확인한 것으로는 무조건 작거나 같은 것을 묶기보단 가변적으로 생각 회로를 열어두는 것이
- 좋을 것 같다는 생각을 했으며, 수학적인 점으로는
- 분자와 분모가 같은 값으로 더해질 경우 그에 대한 결과 값을 계속해서 커진다는 것.
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));
int[] li = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int x = li[0];
int y = li[1];
long z = y*100L/x;
int result = -1;
int s = 0;
int e = (int) 1e9;
while (s<=e) {
int mid = (s+e)/2;
long new_persent = (y+mid)*100L/(x+mid);
if (z != new_persent) {
result = mid;
e = mid-1;
} else s = mid+1;
}
System.out.println(result);
}
}
'알고리즘' 카테고리의 다른 글
[프로그래머스, 자바, 154538번] 숫자 변환하기 (1) | 2024.09.01 |
---|---|
[SWEA, 자바, 1983번] 조교의 성적 매기기 (0) | 2024.08.29 |
[백준, 자바, 10988번] 팰린드롬인지 확인하기 (0) | 2024.08.27 |
[백준, 자바, 2512번] 예산(이분 탐색) (0) | 2024.08.24 |
[백준, 자바, 2110번] 공유기 설치(이분 탐색) (0) | 2024.08.24 |