티스토리 뷰
문제
풀이
정수 a, b를 받고 a + b를 출력하면 됩니다.
Scanner라는 편한 클래스가 있지만 나중을 위해 BufferedReader, BufferedWriter 클래스를 사용하는 것이 더 나은 선택입니다. Scanner는 선언하는 것만으로도 무겁고 입출력 속도가 너무 느립니다. 문제를 풀다 보면 로직 자체에 아무런 문제가 없는데, 시간 초과가 나오는 것을 종종 볼 수 있습니다. 어떤 문제는 단지 Scanner를 선언하는 것만으로도 시간 초과가 납니다. Scanner 때문에 시간 초과가 날 수 있다는 것을 염두에 두고 있으면 그때그때 제대로 대처할 수도 있겠지만 보통은 종종 잊곤 합니다. 이럴 때 가장 큰 문제점은 아무런 오류가 없는 로직 자체를 의심해 많은 시간을 삽질하게 만든다는 점입니다. 그러니 이 글을 보고 있는 여러분은 빠르게 BufferedRedaer, BufferedWriter 클래스 사용법을 익히기를 권합니다. 아니면 C++로 갈아타는 것도 좋은 방법입니다. 필자는 어쩔 수 없이 현재 Java를 사용하고 있습니다.
아래 사진에서 위쪽은 BufferedReader, BufferedWriter를 사용했을 때 속도, 아래쪽은 Scanner를 사용했을 때 속도입니다. 이 문제에선 입출력이 한 줄씩인데도 속도가 이 정도로 차이가 납니다. 입출력이 커지면 이러한 차이는 더욱 커집니다.
코드
import java.io.*;
import java.util.*;
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));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
bw.write(a + b + "\n");
bw.flush();
bw.close();
br.close();
}
}
'컴퓨터공학 > Problem Solving' 카테고리의 다른 글
[백준/BOJ] 1008 : A/B (자바/Java) (0) | 2022.09.12 |
---|---|
[백준/BOJ] 1001 :A-B (자바/Java) (0) | 2022.09.12 |
백준 10473 (0) | 2021.01.31 |
백준 1106 (0) | 2021.01.27 |
백준 12713 (0) | 2021.01.26 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 부트 캠프
- 터보소트
- 사탕상자
- 백준 12713
- 제로베이스 스쿨
- boj 12713
- 디지털 비디오 디스크
- 백준 3006
- boj 2243
- 백준 1106
- boj 2336
- 제로베이스 백엔드 스쿨
- 백준 16562
- boj 10473
- boj 1106
- boj 3006
- 백준 1280
- boj 16562
- boj 9345
- 백준 2336
- boj 1280
- 인간 대포
- 백준 9345
- boj 10775
- 백준 2243
- boj 14868
- 백준 10473
- 백준 10775
- Ugly Numbers
- 백준 14868
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함