코딩테스트 연습

[백준] 1001번 - A-B (JAVA) / 1008번 - A/B (JAVA)

zzzin 2022. 1. 30. 01:18

이번 문제는 저번 문제와 같이 두 숫자 값을 입력받아 계산값을 내는 동일 유형의 문제인데, 저번 포스팅에서는 간단하게 Scanner를 이용해서 풀어봤지만 이번에는 저번에 참고하겠다고 첨부했던 포스팅을 보고 BufferedReader와 StringTokenizer를 이용해서 풀어봤다.

 

 

 

[백준] 1단계 1000번 - A+B (JAVA)

이번 문제는 두 개의 숫자를 입력받아 그 합을 출력하는 문제이다. 내가 기억하기로는 값을 입력받는 방법에 여러가지가 있었던 것 같은데 레퍼런스 없이 바로 적으려니 기억나는 것이 Scanner밖

zzzin.tistory.com

 

 

 

 

이번 문제에서 쓴 BufferedReader 역시 Scanner와 동일하게 콘솔창에서 키보드를 통해 값을 입력받아 처리하는 것이므로 System.in 사용

 

 

 

BufferedReader를 이용하여 입력받은 값은 String형이며, 두 개의 값을 한번에 입력받았으므로 각각 분리하여 계산하기 위해 StringTokenizer를 사용한다.

 

 

str변수 안에 담겨있는 String형의 두 숫자값은 띄어쓰기로 구분되어 있기 때문에 StringTokenizer에서 쓸 구분자는 " "로 지정하여 두 숫자값을 분리한 후 st변수 안에 두 개의 분리된 값을 담아준다.

 

그러나 st안에 담긴 두 개의 값은 아직 String형이라 숫자계산이 되지 않으므로 Integer.parseInt를 통해 숫자형으로 변환시킨 후 변수 A, B에 담아준 후 계산하도록 한다.

 

 

 

또한 BufferedReader를 사용했으므로 다음과 같이 예외처리를 해주어야 한다. 어차피 안하면 편집기에서 예외처리가 필요하다고 오류가 뜨므로 자동으로 하게 된다. 

 

 

 

정답처리 된 소스코드

 

 

 


 

1008번의 나눗셈문제 역시 동일한 방식으로 풀었으나, 정수형 간의 계산은 무조건 소수점 뒷자리들이 없는 정수형만을 반환하기 때문에 두 숫자 중 한개 이상을 반드시 실수형으로 변환해줘야 한다는 점만이 달랐으므로 그 부분 만을 첨부함.

 

다음과 같이 문자열 형식으로 입력된 두 숫자 중 하나만 int형이 아닌 실수형인 double형으로 변환하여 나눗셈 계산을 하면 결과값도 문제 없이 실수형으로 소수점자리까지 출력된다. ( 두 숫자 모두 실수형으로 변환하여도 상관 없음 )

'코딩테스트 연습' 카테고리의 다른 글

[백준] 2588번 - 곱셈 (JAVA)  (0) 2022.01.30
[백준] 10998번 - A*B (JAVA)  (0) 2022.01.30
[백준] 1000번 - A+B (JAVA)  (0) 2022.01.30
[백준] 10172번 - 개 (JAVA)  (0) 2022.01.30
[백준] 10171번 - 고양이 (JAVA)  (0) 2022.01.29