본문 바로가기

알고리즘/백준

[10951]A+B - 4

수행일자 : 2021.07.11


https://www.acmicpc.net/problem/10951

 

10951번: A+B - 4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net


문제

  • 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력

  • 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

  • 각 테스트 케이스마다 A+B를 출력한다.

입출력 예제


while을 사용하는 문제이다.

10952번과 달리 종료시점에 대한 정의가 되어있지 않기 때문에 더 이상 읽을 수 없는 데이터인 EOF(End of File)을 이용하여 종료시점을 잡아줘야 한다.

  • EOF란, 더 이상 읽을 수 있는 데이터가 없음을 나타내는 용어로 주로 입력할 데이터의 개수가 총 몇개인지, 종료시점이 언제인지 등에 대해 명시되어있지 않을 때 주로 사용한다.

Scanner와 BufferedReader/StringBuilder 를 사용하여 총 2가지의 방식으로 풀어볼 수 있다.

 

1. Scanner

Scanner는 자바에서 사용자에게 입출력을 받을 때에 사용하는 대표적인 클래스이다.

while문 안에서 계속해서 변수를 입력받고, 두 변수의 합을 출력해준다.

EOF 발생 시, 예외처리를 발생시켜 입력 및 출력을 종료한다.

  • EOF입력 방법은 숫자가 아닌 문자 즉, 영문자나 특수문자 등을 입력해주면 된다.

답안 소스 - Scanner

import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		while(sc.hasNextInt()) {
			int A = sc.nextInt();
			int B = sc.nextInt();
			
			System.out.println(A+B);
		}

	}

}

2. BufferedReader / StringBuilder

BufferedReader는 사용자에게 입출력을 받을 때에 사용하는 클래스인데, 데이터 양이 많거나 빠른 속도가 필요할 때에 주로 사용한다.

[BufferedReader에 대한 자세한 설명은 추후에 추가할 예정이다.]

StringBuilder는 String을 만드는 객체로 변경이 가능한 문자열을 만들어준다.

[StringBuilder 클래스에 대한 자세한 설명은 추후에 추가할 예정이다.]

while문 안에서 계속해서 변수를 입력받고, 두 변수의 합을 출력해준다.

EOF 발생 시, 예외처리를 발생시켜 입력 및 출력을 종료한다.

  • EOF입력 방법은 ctrl + Z 혹은 ctrl + D 를 눌러주면 된다.

 

답안 소스 - BufferedReader / StringBuilder 

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 IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		String str;
		
		while((str = br.readLine())!=null) {
			st = new StringTokenizer(str," ");
			
			int A = Integer.parseInt(st.nextToken());
			int B = Integer.parseInt(st.nextToken());
			
			sb.append(A+B).append("\n");
		}
		System.out.print(sb);
	}
}

 

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

[10818]최소, 최대  (0) 2021.07.21
[1110]더하기 사이클  (0) 2021.07.17
[10952]A + B -5  (0) 2021.07.11
[10871]X 보다 작은 수  (0) 2021.07.10
[2439] 별 찍기 - 2  (0) 2021.07.04