[★1][백준10952번]A+B - 5 (JAVA)

Date:     Updated:

카테고리:

태그:

[★1][백준10952번]A+B - 5 (JAVA)

10952번 문제 ☞ https://www.acmicpc.net/problem/10952

난이도 ☞ [★1]

A+B - 5

  • 문제
    • 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
    • 입력은 여러 개의 테스트 케이스로 이루어져 있다.
      각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
      입력의 마지막에는 0 두 개가 들어온다.
    • 각 테스트 케이스마다 A+B를 출력한다.

      예제입력 예제출력
      1 1
      2 3
      3 4
      9 8
      5 2
      0 0
      2
      5
      7
      17
      7

내가 푼 풀이

While문의 기본인 문제라고 생각이 되고, 종료되는 기점은 0을 두 개 입력 받았을 때이다. While(true)로 무한 반복을 하면서 int aint b가 둘 다 0일 경우 break를 써줌으로 인해 종료되게 구현해주면 된다. 우선 두가지 방법으로 코드 풀이를 해보았다. 첫번째는 Scanner이다.

[ 풀이 1 ]

메모리 : 17960KB
시간 : 232ms

Scanner

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);

		while (true) {
			int a = s.nextInt();
			int b = s.nextInt();

			if (a == 0 && b == 0) {         // a가 0이면서 b가 0일 때
				break;
			}
			System.out.println(a + b);
		}
	}
}

위의 방식은 제일 기본적인 Scanner방식이고, BufferedReader로도 출력이 가능하지만, BufferedReader를 약간 더 응용해서 StringBuilder와 함께 작성해보도록 하겠다. BufferedReader로만 구성하는 방법이 궁금하다면 이전 게시물들을 참고하길 바란다. BufferedReaderStringBuilder로 구성한 코드는 아래와 같다.

[ 풀이 2 ]

메모리 : 14140KB
시간 : 128ms

BufferedReader, StringBuilder, StringTokenizer

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();

		while (true) {
			StringTokenizer 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);
	}
}

Scanner보다 BufferedReader가 확실하게 성능면에서 우수한 것을 알 수있다.

BKJN 카테고리 내 다른 글 보러가기

댓글 남기기