[★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 02
5
7
17
7
내가 푼 풀이
While
문의 기본인 문제라고 생각이 되고, 종료되는 기점은 0을 두 개 입력 받았을 때이다. While(true)
로 무한 반복을 하면서 int a
와 int 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
로만 구성하는 방법이 궁금하다면 이전 게시물들을 참고하길 바란다. BufferedReader
와 StringBuilder
로 구성한 코드는 아래와 같다.
[ 풀이 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
가 확실하게 성능면에서 우수한 것을 알 수있다.
'Coding Test > 백준' 카테고리의 다른 글
[★2][백준1110번 for JAVA]더하기 사이클 (0) | 2023.03.23 |
---|---|
[★1][백준10952번 for JAVA]A+B - 4 (0) | 2023.03.22 |
[★1][백준2439번 for JAVA]별 찍기 - 2 (0) | 2023.03.20 |
[★1][백준2438번 for JAVA]별 찍기 - 1 (0) | 2023.03.19 |
[★1][백준11021번 for JAVA]A+B - 7 (0) | 2023.03.18 |
댓글