![[백준] 15552 - 빠른 A+B](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2G1cC%2FbtsyDzbvrfV%2FjmP3fQkUrW2x1DwTkaxK4K%2Fimg.png)
• 문제
이전에 풀었던 A+B와 같은문제입니다. 하지만 빠른 A+B라고 되어있는만큼 이 문제에서는 시간제한이 1초로되어있습니다.
• 풀이
이 문제를 일반적인 Scanner를 이용하여 입력을 받거나
System.out.println() 출력을 사용하게 된다면
위와 같이 런타임 에러가 나오게됩니다.
여기서 입력값을 받을 때 BufferedReader를 사용하고 출력은 BufferdWriter를 사용하여 문제를 풀어보도록 하겠습니다.
BufferedReader에 대한 대략적인 설명은 아래 링크를 참조해주시거나 다른 좋은 설명글도 많으니 한 번쯤은 보시는 걸 추천드립니다!
후에 StringTokenizer에 대한 포스팅도 하고 링크 추가해놓겠습니다!
[Java] - BufferedReader
역할 BufferedReader를 한 문장으로 정리하자면 Byte타입으로 전송되는 데이터를 Char형으로 변환하고 버퍼링을 적용하여 Char데이터를 반환한다. Char타입으로 반환된다고 했는데 왜 문자열로 출력되
lee-dev-log.tistory.com
BufferedWriter
역할 BufferedWriter는 버퍼를 이용하여 데이터의 출력을 다루는 함수입니다. 버퍼를 사용한다는 것은 버퍼에 출력문자열을 저장했다가 버퍼가 다 차거나 사용자의 코드로(flush) 요청이 들어오면 버
lee-dev-log.tistory.com
먼저 테스트케이스의 개수 T를 입력고나서 T를 조건식으로 만들어 반복문을 만들어 정수 A와B를 받아준다.
문제 자체는 이전에 풀어봤던 A+B문제와 같고 입출력만 다른 부분이니 문제자체보다는 입출력방법을 중점으로 설명하도록하겠다.
코드를 먼저 살펴보며 설명해보도록 하겠다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
for(int i=0; i<T; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
bw.write(A+B + "\n");
}
bw.flush();
}
}
먼저 StringTokenizer타입의 st인스턴스를 생성해주고 br.readLine()으로 입력을 받는데 이 때,
우리는 정수 A,B를 입력받을 때 공백(" ")을 구분으로 하여 A B를 구분하기 때문에 StringTokenizer객체의 생성자를(br.readLine() , " ")로 호출해준다.
st.nextToken()으로 구분된 각 토큰의 값을 A와 B에 저장하는데 이 때, String타입으로 반환되었으므로 Integer.parseInt를 사용하여 정수형으로 타입을 변환해준다.
그리고나서 bw.write메서드를 사용하여 버퍼에 더한 값을 저장해주고
bw.flush()를 통해 출력한다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11022 - A + B -8 (1) | 2023.10.18 |
---|---|
[백준] 11021 - A+B -7 (0) | 2023.10.18 |
[백준] 25314 - 코딩은 체육과목 입니다 (0) | 2023.10.18 |
[백준] 25304 - 영수증 (0) | 2023.10.17 |
[백준] 8393 - 합 (0) | 2023.10.17 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!