본문 바로가기

코딩 테스트 공부/백준 문제풀기

[JAVA] 백준 - 1008번 : A/B

입출력과 사칙연산의 다섯 번째 문제.

 

 

실제 정답과 출력값의 절대오차 또는 상대오차가 10^-9 이하여야 정답으로 인정된다는 조건이 있다.

소수점 이하 값까지 출력하려면 float이나 double을 사용해야 하는데

float은 소수점 이하 7자리까지, double은 15자리까지 정밀도를 가지므로

이 문제를 해결하기 위해선 double을 사용해야 한다.

 

답으로 제출한 코드는 다음과 같다.

 

 

이렇게 처음부터 double a, b에 입력값을 넣을 수도 있고

다음과 같이 int a, b로 받은 다음 출력할 때 double로 변환해도 된다.

 

 

이 방식에선 Scanner 대신 BufferedReader를 사용했다. 

 

 

윗줄이 BufferedReader를 사용한 코드, 아랫줄이 Scanner를 사용한 코드이다.

BufferedReader를 사용했을 때 속도 면에서 더 빠른 것을 볼 수 있다.

 

1, 3을 입력하니 다음과 같은 결과가 나왔다.