먹었으면 뇌를 쓰자

백준 15552 java - 빠른 A+B 본문

JAVA/백준 알고리즘

백준 15552 java - 빠른 A+B

뇌이비 2022. 11. 7. 18:18

문제

 

 

 

 

 

잘못된 코드 (런타임 에러 NoSuchElement)

주석처럼 생각해서 코드를 짜봤는데 

아예 틀린 코드는 아니지만 런타임 에러가 떴다. 

어딘가에서 논리 구조가 이상한 건가?

 

 

 

 

정답 

일단 위 코드에서 '4 출력'은 할 필요가 없었다. 출력을 잘못 봤다. 

 

String.valueOf도 쓸 필요가 없었다.

BufferedReader를 통해 들어온 a와 b는 기본적으로 String 타입이기 때문이다.

a와 b를 더하기 위해 Integer.parseInt를 사용한 것이므로 

BufferedWriter로 출력할 때는 다시 String 타입으로 나온다. 

 

정답의 관건은 StringTokenizer로 공백 단위를 구분해 입력 값을 받는 작업을

for문 안에서 수행하고 st.nextToken()이 아닌 br.readLine()으로 받는 점이다. 

 

왜냐하면 테스트 케이스 횟수 test는 하나의 값만 들어오기 때문이다.

자바 입장에서는 값이 하나뿐인데 공백 단위로 구분하라고 하니 이상했을 거다. 

 

요컨대 공백 단위로 구분해야 할 하나 이상의 값이 들어오는

for문의 상황에서 StringTokenizer 클래스를 선언하는 것이 맞다. 

 

 

'JAVA > 백준 알고리즘' 카테고리의 다른 글

백준 11022 java - A+B-8  (0) 2022.11.08
백준 11021 java - A+B-7  (0) 2022.11.08
백준 25304 java - 영수증  (0) 2022.11.05
백준 8393 java - 합 (이 글을 보면 도와주세요)  (1) 2022.11.05
백준 10950 java - A+B-3  (0) 2022.11.05
Comments