[★1][백준10952번]A+B - 4 (JAVA)
10951번 문제 ☞ https://www.acmicpc.net/problem/10951
난이도 ☞ [★1]
A+B - 4
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
입력의 마지막에는 0 두 개가 들어온다.각 테스트 케이스마다 A+B를 출력한다.
예제입력 예제출력 1 1
2 3
3 4
9 8
5 22
5
7
17
7
내가 푼 풀이
While
문과 EOF(더 이상 읽을 수 없는 데이터)
가 있을 때 종료를 시키는 문제인데, 종료시점을 몰라 틀리는 경우가 많아보인다. 들어가기에 앞서 EOF
에 대해 약간의 설명을 하고자한다.
EOF
- 입력에서 읽을 수 있는 데이터가 더 이상 존재하지 않을 때 반복문을 종료하라는 것이다.
- EOF = End Of File, 파일의 끝
위를 토대로 코드를 작성해보겠습니다. try-catch
문으로도 예외 발생 처리를 할 수 있지만, Scanner
를 토대로 hasNextInt()
를 통해 처리하는 코드이다.
[ 풀이 1 ]
메모리 :
17960KB
시간 :232ms
Scanner
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
while (s.hasNextInt()) {
int a = s.nextInt();
int b = s.nextInt();
System.out.println(a + b);
}
s.close();
}
}
위의 방식은 제일 기본적인 Scanner
방식입니다.
다음 풀이는 BufferedReader
만 사용하였을 때는 StringTokenizer
를 사용하여 공백을 넣는 방식말고, 이번에는 약간 다르게 BufferedReader
와 charAt()
을 사용하여 코드를 구현해보았다. charAt()
은 아스키 코드 값을 반영하기 때문에 정수 형태로 표현하려면 charAt() - 48
처럼 -48
을 해주면 된다. BufferedReader
와 charAt()
을 사용하여 풀이한 코드는 아래와 같다.
[ 풀이 2 ]
메모리 :
14140KB
시간 :128ms
BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String str;
while ((str = br.readLine()) != null) {
int a = str.charAt(0) - 48; // index 0 번째에 저장
int b = str.charAt(2) - 48; // index 2 번째에 저장
// index 1 번은 자연스럽게 공백(" ")이 됨
sb.append((a+b)).append("\n");
}
System.out.println(sb);
}
}
Scanner
보다 BufferedReader
가 확실하게 성능면에서 우수한 것을 알 수있다.
'Coding Test > 백준' 카테고리의 다른 글
[★2][백준10807번 for JAVA]개수 세기 (0) | 2023.03.24 |
---|---|
[★2][백준1110번 for JAVA]더하기 사이클 (0) | 2023.03.23 |
[★1][백준10952번 for JAVA]A+B - 5 (0) | 2023.03.21 |
[★1][백준2439번 for JAVA]별 찍기 - 2 (0) | 2023.03.20 |
[★1][백준2438번 for JAVA]별 찍기 - 1 (0) | 2023.03.19 |
댓글