Baekjoon(JAVA)/Algorithm
[Baekjoon(JAVA) - Algorithm] 1000번: A+B
Yn3(인삼)
2023. 10. 24. 15:43
https://www.acmicpc.net/problem/1000
1000번: A+B
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
Question
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
Input
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
example input
1 2
Output
첫째 줄에 A+B를 출력한다.
example output
3
Answer
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
System.out.println(A + B);
sc.close();
}
}
Problem Solution
오랜만에 Java에서 입력을 받으려고 하니 Scanner라는게 있었다는 것을 깨달았다...
그래서 Scanner 클래스에 대해서 알아보고자 한다.
Scanner 클래스
자바에서 입력받을 때 가장 많이 쓰이는 클래스 중 Scanner 라는 것이 있다.
이 Scanner 클래스는 JDK1.5부터 추가되어 정수, 실수, 문자열을 읽어올 수 있으며,
이전에 쓰이던 문자, 숫자 입력을 받은 명령들보다 예외처리, 수행속도면에서 훨씬 편해서 많이 쓰이게 되었다.
Scanner의 특징
- 기본적인 데이터 타입들을 Scanner의 메소드를 사용하여 입력받을 수 있다.
100을 입력할 때 String으로 입력받고 싶으면 next()나 nextLine()을 사용하고, int로 입력받고 싶으면 nextInt()를 사용하여 입력받으면 해당 타입별로 입력된다. - Scanner를 사용할 시 util 패키지를 경로의 Scanner 클래스를 호출해야 한다.
Java에서 쓰이는 대부분의 클래스는 lang 패키지가 아니라면 import를 통해 호출해야 한다.
따라서, Scanner의 경우 java.util 패키지를 호출해야 한다. - 공백(띄어쓰기) 또는 개행(줄 바꿈)을 기준으로 읽는다.
Scanner의 입력 메소드들은 대부분 공백과 개행(' ', '\t', '\r', '\n', etc..)을 기준으로 읽는다.
Code Explanation
Scanner sc = new Scanner(System.in);
위처럼 Scanner 객체를 생성할 때 System.in이 들어가는데
System.in은 사용자로부터 입력을 바이트 단위로 받기 위한 입력 스트림이다.
Scanner 뿐만 아니라 다른 입력 방식들도 사용자로부터 입력을 받기 위해서는 System.in을 사용해야 한다.
sc.close();
위의 명령문을 쓰지 않으면 sc에 경고가 뜨지만 영향은 없다.
키보드 입력의 경우 close()를 해주지 않아도 상관없지만, 리소스를 사용하는 경우 close()를 해주지 않으면 리소스 손상이 일어날 수 있다.