System.out.println(); 도 성능저하에 크게 기여한다.
그래서 자주 반복될 때는 BufferedWriter 와 StringBuilder 를 사용해서
System.out.println()을 최소한으로 사용할 수 있게 만들어준다
BufferedReader + StringTokenizer + BufferedWriter 풀이
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));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(A+B + "\n");
bw.write(A-B + "\n");
bw.write(A*B + "\n");
bw.write(A/B + "\n");
bw.write(A%B + "\n");
bw.flush();
bw.close();
}
}
BufferedReader + StringTokenizer + StringBuilder 풀이
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));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
StringBuilder sb = new StringBuilder();
sb.append(A+B+"\n");
sb.append(A-B+"\n");
sb.append(A*B+"\n");
sb.append(A/B+"\n");
sb.append(A%B+"\n");
System.out.println(sb);
}
}
출력성능을 따져보면 BufferedWriter>StringBuilder>System.out.println 라고 하니
출력 데이터가 많으면 앞에 두개를 쓰는게 좋겠다.
'알고리즘 풀이' 카테고리의 다른 글
[백준]1330번: 두 수 비교하기 - java 풀이 (0) | 2023.03.25 |
---|---|
[백준]2588번: 곱셈 - java 풀이 (0) | 2023.03.25 |
[백준]1001번: A-B - java 풀이 (0) | 2023.03.23 |
[백준]1000번: A+B - java 풀이 (0) | 2023.03.22 |
백준 10430 java 풀이 (0) | 2023.02.12 |