본문 바로가기

알고리즘/백준

[10952]A + B -5

수행 일자 : 2021.07.10


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

 

10952번: A+B - 5

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

www.acmicpc.net


문제

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

입력

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

출력

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

 

입출력 예제

 


while을 사용하는 문제이다.

while문은 while(조건문) {  } 의 형태로 사용한다.

해당 문제에는 종료 조건이 설정되어 있으므로 while문 안에 if 문을 사용하여 종료 조건을 추가해주면 된다.

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

 

1. Scanner

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

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

만약 입력받은 변수 A,B가 둘다 0일 때에는 종료하도록 if 문 안에 조건을 걸어서 break; 를 걸어준다.

해당 소스는 변수 입력 후에 두 변수의 합이 바로 나온다.

답안 소스 - Scanner

import java.util.Scanner;

public class Main {

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

2. BufferedReader / StringBuilder

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

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

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

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

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

만약 입력받은 변수 A,B가 둘다 0일 때에는 종료하도록 if 문 안에 조건을 걸어서 break; 를 걸어준다.

해당 소스는 두 변수를 계속해서 입력하다가 0과 0을 입력했을 때에 입력했던 두 변수들의 합을 한번에 보여준다.

답안 소스 - 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));
		StringTokenizer st;
		StringBuilder sb = new StringBuilder();
		
		while(true) {
			st = new StringTokenizer(br.readLine()," ");
			
			int A = Integer.parseInt(st.nextToken());
			int B = Integer.parseInt(st.nextToken());
			
			if(A==0 && B==0) {
				break;
			}
			sb.append(A+B).append('\n');
		}
		System.out.println(sb);
	}
}

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

[1110]더하기 사이클  (0) 2021.07.17
[10951]A+B - 4  (0) 2021.07.11
[10871]X 보다 작은 수  (0) 2021.07.10
[2439] 별 찍기 - 2  (0) 2021.07.04
[2438]별 찍기 - 1  (0) 2021.07.03