728x90
난이도 - 브론즈 5
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
첫째 줄에 A+B를 출력한다.
728x90
자바에서 사용자 입력 받는 방법은 Scannew, BufferedReader, System.in.read() 이렇게 있다.
1. Scanner
scanner 클래스는 텍스트 기반의 입력을 처리하는 데 사용된다. 주로 공백이나 줄바꿈을 기준으로 데이터를 읽어온다.
사용이 편하고 다양한 데이터 타입을 읽을 수 있지만 입력이 많은 경우에는 느릴 수 있다.
사용 예)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int A, B;
Scanner scanner = new Scanner(System.in);
A = scanner.nextInt();
B = scanner.nextInt();
System.out.println(A + B);
}
}
2. BufferedReader, BufferedWriter
BufferedReader 클래스는 텍스트 기반의 입력을 처리하는 데 특화되어 있다.
버퍼를 사용하기 때문에 입출력 성능이 향상되고 문자열을 한 줄씩 읽어오기 용이하다. 하지만 데이터 타입에 따라 형 변환이 필요하며 다른 방법들에 비해 코드가 조금 더 길어지고 복잡해질 수 있다.
사용 예)
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
bw.write(String.valueOf(A + B));
bw.flush();
br.close();
bw.close();
}
}
메모리랑 시간이 확 줄기 때문에 난 스캐너보다 이거 주로 씀
3. System.in.read()
이 메서드는 한 번에 하나의 바이트씩 입력을 받는다. 때문에 주로 문자 입력받을 때 사용된다.
간단하고 빠르게 입력 처리할 수 있지만 문자열 읽을 때는 반복문 사용해야 하고 문자열로 변환해야 한다.
사용 예)
public class Main {
public static void main(String[] args) throws Exception {
int A = System.in.read() - 48;
System.in.read();
int B = System.in.read() - 48;
System.out.println(A+B);
}
}
입력값에 공백도 있어 가운데에 한번 더 읽어준다.
입력받고 48을 빼는 이유는 read() 메소드는 값을 문자형으로 받기 때문
따라서 0의 아스키코드값인 48을 빼줘야 원하는 결과가 나온다.
- '0'으로 해도 같다.
public class Main {
public static void main(String[] args) throws Exception {
int A = System.in.read() - '0';
System.in.read();
int B = System.in.read() - '0';
System.out.println(A+B);
}
}
![](https://t1.daumcdn.net/keditor/emoticon/friends2/large/020.png)
728x90
'백준 > Java' 카테고리의 다른 글
[백준 자바] 14681번(사분면 고르기) (0) | 2024.03.03 |
---|---|
[백준 자바] 10699번(오늘 날짜) (0) | 2024.03.03 |
[백준 자바] 15964번(이상한 기호) (0) | 2024.03.03 |
[백준 자바] 2588번(곱셈) | 세 자리 수 x 세 자리 수 (0) | 2024.03.03 |
[백준 자바] 21598번(SciComLove) | System.in.read() (0) | 2024.02.21 |