문제
두 정수 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
'Algorithm > Baekjoon(Java)' 카테고리의 다른 글
| [백준/JAVA] 2438 : 별 찍기 - 1 ( 중첩for문 ) (0) | 2022.07.10 |
|---|---|
| [백준/JAVA] 11022 : A+B - 8 (0) | 2022.07.10 |
| [백준/JAVA] 2742 : 기찍 N (0) | 2022.07.10 |
| [백준/JAVA] 2741 : N 찍기 (0) | 2022.07.09 |
| [백준/JAVA] 15552 : 빠른 A+B (0) | 2022.07.09 |