데블 아니고 데블리

운동,햄버거, 개발 좋아요

🐷💻📝

프로그래밍/자바

[JAVA] Scanner vs BufferedReader(),(BufferedWriter) 코딩테스트 무엇을 쓰는게 좋을까 (2)?

데블아니고데블리 2024. 3. 27. 20:10

[이어서.. 속도차이가 얼마나 날까 ? ]

백준 예제 10998 두 수의 곱셈 문제를 풀어보려고 한다

문제 

https://www.acmicpc.net/problem/10998

 

10998번: A×B

두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

[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();
        int sum = a * b;
        System.out.println(sum);
        sc.close();
    }
}

 

결과

 


[BufferedReader()를 사용한 코드]

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));
        String s = br.readLine();
        StringTokenizer st = new StringTokenizer(s);
        int a = Integer.parseInt(st.nextToken());  
        int b = Integer.parseInt(st.nextToken());
        System.out.println(a*b);
        br.close();       
    }
}

 

결과

 

Scanner를 사용했을 때 208ms, BufferedReader를 사용했을 때 128ms로 코드 길이가 더 길어도 bufferedReader가 빨랐다

메모리는 경우 Scanner가 17720KB, BufferedReader가 14184KB로 엄청 큰 차이는 없는 것 같다..

적은 입력값에는 Scanner를 사용해도 무관할 것으로 생각이 들었다... 하지만 코테는 

 

3탄에는 출력과 관련된 System.out.println(); 과 BufferedWriter()을 작성해 보려고 한다

그렇지만 오늘은 피곤하니 내일쓸랭~ 끝!