Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 1072] 게임 본문
반응형
기존 점화식은
Y / X * 100
이지만 y에 비해 x가 무진장 크다면 0.0000xxxx.... 가 되어 100을 곱해도 0이 되게 된다.
따라서
Y * 100 / X
로 점화식을 짜주고 y * 100이 int의 범위를 벗어날 수 있으므로 long타입으로 해준다.
X와 Y가 같지 않은 이상 절대로 확률이 100%가 될 수 없으므로
Y * 100 / X 가 99이면 -1을 출력한다.
그 외의 경우에는 이분탐색으로 기존의 승률보다 높으면서 판수가 가장 적을때를 찾아낸다.
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long x = sc.nextInt();
long y = sc.nextInt();
int z = (int)(y * 100 / x);
if(z >= 99) System.out.println(-1);
else {
int left = 0;
int right = Integer.MAX_VALUE;
while(left <= right) {
int mid = (left + right)/2;
if((int)((y+mid) *100 / (x+mid)) > z) right = mid - 1;
else left = mid + 1;
}
System.out.println(left);
}
}
}
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 3009] 네 번째 점 (0) | 2019.07.16 |
---|---|
[백준 7453] 합이 0인 네 정수 (0) | 2019.07.16 |
[백준 2869] 달팽이는 올라가고 싶다 (0) | 2019.07.16 |
[백준 1484] 다이어트 (0) | 2019.07.05 |
[백준 1806] 부분합 (0) | 2019.07.05 |
Comments