본문 바로가기

백준/JAVA

[Baekjoon/JAVA] 25238번 - 가희와 방어율 무시

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