Algorithm/Baekjoon(Java)

[백준/JAVA] 11021 : A+B - 7

비망노트 2022. 7. 10. 12:49
문제

두 정수 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

 

⭕ 풀이

import java.util.*;
import java.io.*;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        int tc = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();
        for(int i=1;i<=tc;i++){
            st = new StringTokenizer(br.readLine());
            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());
            
            sb.append("Case #").append(i).append(": ").append(A+B).append("\n");
        }
        System.out.print(sb);
    }
}

✅ 

1. 반복문을 돌려야할, 즉 예제입력의 제일윗줄의 값을 tc (test case) 변수로 받는다.

2. for문 내에서 br.readLine으로 한줄씩 입력받는것을 StringTokenizer로 공백기준으로 자른다.

3. Integer.parseInt로 공백기준으로 자른 두 문자열을 정수로 변환해 A,B에 넣는다.

4. StringBuilder타입의 sb를 통해 예제출력에 맞게 문자열과 i 값, A+B의 값, 개행을 담는다.

5. 그렇게 담아둔 sb를 한번에 출력한다.

 

sb.append("Case #").append(i).append(": ").append(A+B).append("\n");

sb.append("Case #"+i+": "+(A+B)+"\n");

위의 append 말고 아래처럼 append 를 한번사용해 받아도 결과는 같다.

아마 몇번 문제를 풀며 테스트해보았는데 실행속도에서 위의 append가 약간 더 빠른속도를 보여주었다.

 

 

-출처

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