Mintaka's log
[백준]10951번 본문
https://www.acmicpc.net/problem/10951
10951번: A+B - 4
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
종료시점을 명확히 해주지 않아 NoSuchElement 에러남.
Scanner를 사용했는데 데이터가 하나가 들어왔을 때가 있어서 발생했다고 떴다.
==>hasNextInt( ) 를 사용해서 종료시점 알 수 있도록 해줬다.
다른 코드를 보다보니 더 짧은 시간이 걸리는게 있었다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
StringTokenizer st = null;
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = "";
int A = 0, B = 0;
while((str = br.readLine()) != null) {
st = new StringTokenizer(str);
A = Integer.parseInt(st.nextToken());
B = Integer.parseInt(st.nextToken());
sb.append(A+B).append("\n");
}
System.out.println(sb);
}
}
그리고 여기도 참고
[백준] 10951번 : A+B - 4 - JAVA [자바]
https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 간단한 문제지만 의외로 종료시점을 몰라 틀리는 경우들..
st-lab.tistory.com
- BufferedReader과 Scanner의 차이
- Scanner
- Scanner가 더 느리다고 한다
- Scanner는 키보드 입력시 바로 한 자 한 자씩 전달되는 반면
- BufferedReader는 입력시 버퍼로 이동, 버퍼가 다 차거나 개행문자 입력시 버퍼 내용을 한번에 전달하기 때문.
- 키보드나 모니터 등의 데이터 입출력은 시간이 오래 걸림. 그래서 키보드 입력시마다 전달하는 것보다 한번에 묶어 보내는게 더 빠르다고.
- Scanner는 따로 가공할 필요가 없다 => nextInt, nextString으로 받아오고자 하는 값의 자료형을 이미 지정해주었기 때문
- 또 Scanner는 버퍼 사이즈가 1024라서 많은 입력을 필요로 할 경우 결과가 좋지 못하다고.
- Scanner가 더 느리다고 한다
- BufferedReader
- 반면 BufferedReader는 String으로 값을 받아온다고 한다.
- 동기화도 되어서 멀티쓰레드 환경에서 안전.
- Scanner
- BufferedReader 사용방법
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
- 예외처리를 반드시 필요로 한다.
- try/catch나 throws IOException
- StringTokenizer
- BufferedReader로 받아온 string 값을 가공할 때 사용한다고 한다.
- nextToken( ) 메소드를 통해 입력 받은 값을 공백 기준으로 구분해 호출 가능.
- String.split( ) 을 쓸수도 있다.
- BufferedReader로 받아온 string 값을 가공할 때 사용한다고 한다.
- StringBuilder
- string은 한 번 생성시 내용 바꿀 수 없음
- StringBuilder는 가능
- .append("문자열") 로 문자열 넣고
- .toString( ) 으로 문자열 출력
'알고리즘' 카테고리의 다른 글
[백준] 10991- 아니 왜 안됨?-해결! (0) | 2022.05.24 |
---|---|
[백준] 10818 (0) | 2022.05.17 |
[백준] 1924번 (0) | 2022.05.17 |
[JAVA]Scanner 사용 중 nextInt 다음 nextLine 사용시 에러 (0) | 2022.05.12 |
[백준]10950번 (0) | 2022.05.09 |