본문 바로가기
Coding Test/백준

[★1][백준11021번 for JAVA]A+B - 7

by B_E_D 2023. 3. 18.

[★1][백준11021번]A+B - 7 (JAVA)

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

난이도 ☞ [★1]

A+B - 7

  • 문제

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

    • 첫째 줄에 테스트 케이스의 개수 T가 주어진다.
      각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

    • 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다.

      예제입력 예제출력
      5
      1 1
      2 3
      3 4
      9 8
      5 2
      Case #1: 2
      Case #2: 5
      Case #3: 7
      Case #4: 17
      Case #5: 7

내가 푼 풀이

이번 문제는 매우 쉽다고 생각한다. for문 + A+B포함 문제를 풀어봤다면 매우 쉽게 풀 수 있다고 생각하고 약간의 응용(?) 문제라고 생각한다. 제일 기본적으로 Scanner방식을 이용했다.

[ 풀이 1 ]

메모리 : 18640KB
시간 : 256ms

Scanner

import java.util.Scanner;

public class Main {

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

        int t = s.nextInt();

        for (int i = 1; i < t + 1; i++) {
            int a = s.nextInt();
            int b = s.nextInt();
            System.out.println("Case #" + i + ": " + (a + b));
        }
        s.close();
    }

}

위의 "Case #" + i 부분을 약간 설명하자면 i가 1이 기본이기 때문에 첫번째 서클을 돌 때, 1이 대입이 되고 순차적으로 서클이 돌 때마다 1씩 증가되게 되어 i의 수가 변한다. 다음은 BufferedReader방식이다. 코드는 아래와 같다.

[ 풀이 2 ]

메모리 : 16176KB
시간 : 168ms

BufferedReader, 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));

        int t = Integer.parseInt(br.readLine());

        for (int i = 1; i < t + 1; i++) {
            StringTokenizer st;
            st = new StringTokenizer(br.readLine(), " ");
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            System.out.println("Case #" + i + ": " + (a + b));
        }

    }

}

여기서도 보다시피 BufferedReader의 성능이 우수함을 알 수 있다.

댓글