-
알고리즘 문제를 풀 때 가장 좋은 입출력 방법은? (C, C++, Java )Problem Solving/Know-how 2019. 9. 4. 17:06반응형
- C
입력 : scanf
출력 : printf
- C++
입력 : scanf
(단 ios_base::sync_with_stdio(false); 와 cin.tie(NULL) 을 사용하면 cin 이 빠르다.
하지만 이럴 경우 stdio의 함수들은 사용할 수 없다)
출력 : printf
(단 ios_base::sync_with_stdio(false); 를 사용하고 줄바꿈을 '\n'으로 처리하면 cout이 더 빠르다
물론 이 때도 stdio 함수들은 사용할 수 없다 )
- Java
입력 : BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
출력 : BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String s = "abcdefg";//출력할 문자열
bw.write(s+"\n");//출력
bw.flush();//남아있는 데이터를 모두 출력시킴
bw.close();//스트림을 닫음참조 :
입력 속도 비교
여러가지 언어와 입력 방법을 이용해서 시간이 얼마나 걸리는지 비교해 보았습니다. 방법: 첫째 줄에 정수의 개수 N (= 10,000,000), 둘째 줄부터 N개의 줄에 한 개의 자연수(10,000 이하)가 적힌 파일을 입력받는데 걸리는 시간을 측정. 10번 측정해서 평균값으로 순위를 매김 순위 언어 입력 방법 평균 (초) 1 C11 mmap 0.043 2 C11 fread 0.0799 3 C11 getchar 0.3496 4 C++17 ios_base::
www.acmicpc.net
출력 속도 비교
여러가지 언어와 출력 방법을 이용해서 시간이 얼마나 걸리는지 비교해 보았습니다. 방법: 총 N개의 줄에 1부터 10,000,000까지의 자연수를 한 줄에 하나씩 출력하는 시간을 측정. 10번 측정해서 평균값으로 순위를 매김 순위 언어 출력 방법 평균 (초) 1 C11 fwrite 0.4423 2 C++17 ios_base::sync_with_stdio(false); cout << i << '\n'; 0.827 3 C++17 ios_base::sync_wi
www.acmicpc.net
[Java] BufferedReader, BufferedWriter를 활용한 빠른 입출력
BufferedReader/BufferedWriter는 Buffer에 있는 IO 클래스입니다. 입력된 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후에 전달되됩니다. 출력도 마찬가지로 버퍼를 거쳐서 간접적으로 출력장치로 전달되기..
coding-factory.tistory.com
반응형'Problem Solving > Know-how' 카테고리의 다른 글
백준 단계별 문제풀기 4단계 클리어! (0) 2019.07.11 백준 단계별 문제풀기 2,3단계 클리어 (0) 2019.07.08 백준 단계별 문제풀기 1단계 클리어 (0) 2019.07.07