알고리즘/기본코드

[입출력]04. 입출력 방법별 소요 시간 비교

  • -

백준 사이트에 입출력 속도 비교하는 내용이 있는데 유용한 자료같다.

https://www.acmicpc.net/blog/view/56

 

입력 속도 비교

여러가지 언어와 입력 방법을 이용해서 시간이 얼마나 걸리는지 비교해 보았습니다. 방법: 첫째 줄에 정수의 개수 N (= 10,000,000), 둘째 줄부터 N개의 줄에 한 개의 자연수(10,000 이하)가 적힌 파일

www.acmicpc.net

 

 

https://www.acmicpc.net/blog/view/57

 

출력 속도 비교

여러가지 언어와 출력 방법을 이용해서 시간이 얼마나 걸리는지 비교해 보았습니다. 방법: 총 N개의 줄에 1부터 10,000,000까지의 자연수를 한 줄에 하나씩 출력하는 시간을 측정. 10번 측정해서 평

www.acmicpc.net

 

이중 Java와 관련된 내용만 뽑아보면 아래와 같다.

 

입력 측정 방법: 첫째 줄에 정수의 개수 N (= 10,000,000), 둘째 줄부터 N개의 줄에 한 개의 자연수(10,000 이하)가 적힌 파일을 입력받는데 걸리는 시간을 측정. 10번 측정해서 평균값으로 순위를 매김

순위 언어 입력 방법 평균(초)
6 Java BufferedReader, Integer.parseInt 0.6585
17 Java Scanner 4.8448

 

출력 측정 방법: 총 N개의 줄에 1부터 10,000,000까지의 자연수를 한 줄에 하나씩 출력하는 시간을 측정. 10번 측정해서 평균값으로 순위를 매김

순위 언어 출력방법 평균(초)
7 Java BufferedWriter, bf.write(i + "\n"); 0.9581
10 Java StringBuilder를 이용해 문자열 하나로 만든 다음, System.out.println(sb); 1.1881
11 Java BufferedWriter, bf.write(Integer.toString(i)); bf.newLine(); 1.2556
18 Java PrintWriter 1.954
43 Java System.out.println(i); 30.013

입력은 워낙 차이가 많이 나기 때문에 BufferedReader를 사용하는데 이견이 없다.

출력의 경우 BufferedWriter를 쓰면 단순 출력보다는 조금 빨라지는데 코드가 상대적으로 복잡해지기 때문에 간단히 StringBuilder에 println 조합으로도 충분해보인다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.