반응형
Scanner 사용
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + b);
sc.close();
}
}
BufferedReader 및 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));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int inputA = Integer.parseInt(st.nextToken());
int inputB = Integer.parseInt(st.nextToken());
System.out.println(inputA + inputB);
}
}
성능개선
코드는 더 길어졌지만, 메모리 사용량 및 소요 시간은 감소하였습니다.
지금은 간단한 입/출력이지만 예전에, 처음 공부할 때 Scanner의 성능이 좋지 않고, 파일 입/출력할 때도 버퍼를 사용하면 매우 큰 성능 차이를 느껴보아서 I/O buffer도 찾아보았습니다.
+ 추후, 시간복잡도 통과를 위해서 미리 연습해보는 시간을 가졌습니다.
종류 | 코드길이 (B) | 메모리 (KB) | 시간 (ms) |
Scanner | 282 | 12,848 | 108 |
BufferedReader + StringTokenizer | 529 | 11,552 | 76 |
반응형