본문 바로가기
Coding Test/백준

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

by B_E_D 2023. 3. 21.

[★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가 확실하게 성능면에서 우수한 것을 알 수있다.

댓글