본문 바로가기
Programming/Algorithm

[백준] 11021번 : A+B-7 (Java)

by 안녕주 2021. 7. 9.

문제

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

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다.

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

출력

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


코드

import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int tc;
        tc = sc.nextInt();
        int[] arr = new int[tc+1];

        for (int i = 1; i <= tc; i++){
            int a = sc.nextInt();
            int b = sc.nextInt();
            arr[i] = a + b;
        }
        for (int i = 1; i <= tc; i++){
            System.out.println("Case #" + i + ": " + arr[i]);
        }
    }   
}

풀이

위의 풀이의 경우 입력을 다 받은 후에 출력을 다 할 수 있도록 코드를 작성하였다. 하지만 처음 프린트문에서 : 이전에 띄어쓰기를 하나 넣었다고 "틀렸습니다"가 계속 나왔다. 

그래서 코드에 문제가 있는가 싶어서 구글링을 통해 확인해보니 입력을 한번에 다 받고 출력을 한번에 다 할 필요가 없다는 것을 알게 되었다. 아래의 코드는 입력하나 받고 출력하나 하고 그런식의 코드이다. 그렇기에 배열을 사용할 필요도 없고 간단하게 코드 작성이 가능하다.

import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int tc;
        tc = sc.nextInt();
        int[] arr = new int[tc+1];

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

댓글