백준/JAVA
[Baekjoon/JAVA] 25238번 - 가희와 방어율 무시
베리._.
2022. 9. 11. 16:31
Baekjoon Online Judge
문제
메이플스토리 몬스터는 방어율 수치가 있습니다. 이 방어율 수치의 일정 %를 무시하는 것을 방무라고 합니다. 유저는 아이템을 사거나, 특정한 스킬 레벨을 올려서 방무 수치를 올릴 수 있습니다. 그렇게 해서, 유저가 체감하는 몬스터의 방어율 수치를 낮출 수 있습니다. 몬스터의 방어율이 200이고, 유저의 방무가 20이라면, 몬스터의 방어율 200의 20%를 무시하게 되므로, 40만큼 무시하게 됩니다. 즉, 160이 유저가 체감하는 방어율 수치가 됩니다.
유저가 체감하는 몬스터의 방어율 수치가 100보다 크거나 같으면 몬스터에게 대미지를 줄 수 없습니다. 몬스터의 방어율 수치를 a, 유저의 방무를 b라고 할 때, 유저가 몬스터에게 대미지를 줄 수 있는지 없는지 알려주세요.
입력
첫 번째 줄에 정수 a와 b가 공백으로 구분되어 주어집니다.
출력
몬스터에게 대미지를 줄 수 있으면 1, 그렇지 않으면 0을 출력해 주세요.
제한
- 0 ≤ a ≤ 500
- 0 ≤ b ≤ 100
예제 입력 | 예제 출력 |
200 20 | 0 |
90 0 | 1 |
336 71 | 1 |
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt(); // 몬스터의 방어율 수치
int b = in.nextInt(); // 유저의 방무
if (a * (100 - b) < 10000)
System.out.println("1");
else
System.out.println("0");
}
}
소수의 경우 부동소수점을 사용하는데, 이 방법은 정확한 소수 대신 그 소수의 근사값을 표현한다. 소수를 정확하게 표현하지 못하기 때문에 소수의 계산에 오류가 발생할 수 있으므로 양쪽의 식에 100을 곱해서 소수 단위로 계산되지 않게끔 했다.
a * (100 - b) / 100 < 100 -> a * (100 - b) < 10000