https://www.acmicpc.net/problem/1072
μ΄λΆνμ λ¬Έμ μ΄λ€. μ²μμ μ΄κ² μ μ΄λΆνμ μκ³ λ¦¬μ¦ λ¬Έμ μΈμ§ κ°μ΄ μ μ‘νμ§λ§..
1μ© λν΄κ°λ©΄μ μΉλ₯ μ΄ λ°λλμ§ μλ°λλμ§ νμΈμ νλ€λ©΄, X Yκ° ν΄ κ²½μ° λ§μ μκ°μ΄ 걸릴 κ²μ΄λΌλ μκ°μ΄ λ€μλ€. μ΄λΆνμ μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ λ°μ© λ²μλ€μ μ’νκ°λ©° μ°ΎμΌλ©΄ ν¨μ¨μ μΌ κ²μ΄λ€.
νμνλ μλ₯Ό 'κ²μμ λͺ ν λ ν΄μΌνλμ§'λ‘ λλ€. κ·Έλ¦¬κ³ κ·Έ μλ‘ μΉλ₯ (Z)λ₯Ό ꡬνλ€. Zκ° λ°λμ§μμμΌλ©΄ lowκ°μ μ¬λ¦¬κ³ , λ°λμλ€λ©΄ high κ°μ λ΄λ¦¬κ³ λ΅μ κ°±μ ν΄λκ°λ€.
μ λ΅μ λμΆνλ λ° μ£Όμν μ μ Zκ°μ΄ μ λ λ³νμ§ μλλ€λ©΄ -1μ μΆλ ₯νλ λΆλΆμ΄λ€.
μ²μμλ μΉλ₯ μ΄ 100μΌ λμ κ²½μ°λ§ μλ€κ³ μκ°νμ§λ§, 99μΈ κ²½μ°λ λ³νμ§ μλλ€.
μ½λ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Game {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
long X = Integer.parseInt(input[0]);
long Y = Integer.parseInt(input[1]);
long Z1 = (Y * 100) / X;
long Z2 = (Y * 100) / X;
long answer = 0;
long low = 1; //μΆκ°νλ ν μ μ΅μκ°
long high = X; //μ΅λκ°
if(Z1 >= 99) { //Zκ° μ λ λ³νμ§ μμ
answer = -1;
} else {
while(low <= high) {
long mid = (low + high) / 2;
Z2 = ((Y + mid) * 100) / (X + mid);
if(Z2 < Z1 + 1) { //Zκ° λ°λμ§ X
low = mid + 1;
} else { //Zκ° λ°λλ©΄
high = mid - 1;
answer = mid;
}
}
}
System.out.println(answer);
}
}
κ²°κ³Ό
'Algorithm > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
11404λ² - νλ‘μ΄λ (0) | 2022.04.06 |
---|---|
λ°±μ€ 1780λ² - μ’ μ΄μ κ°μ (0) | 2022.04.03 |
λ°±μ€ 2805λ² - λ무 μλ₯΄κΈ° (0) | 2022.03.28 |
λ°±μ€ 2156λ² - ν¬λμ£Ό μμ (0) | 2022.03.17 |
λ°±μ€ 1149λ² - RGB거리 (0) | 2022.03.14 |