본문 바로가기
백준/PS에서의 자바

[JAVA] 출력 관련(백준)

by lms0806 2021. 10. 28.
728x90
반응형

백준을 자바로 푸시는분들이 주로 시간초과가 나서 질문하는 소스들을 보면 대체로 이렇습니다.

for(int i = 0; i < 100; i++){
	System.out.println(i);
}

이럴경우 1개씩 계속해서 출력을 하게 되어 시간이 오래걸립니다.

 

시간을 줄여주기 위해 주로 사용하는 것에는 2가지 정도가 있습니다.

StringBuilder와 BufferedWriter입니다.

StringBuilder는

StringBuilder sb = new StringBuilder();
for(int i = 0; i < 100; i++){
	sb.append(i).append("\n");
}
System.out.print(sb);

BufferedWriter는

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
for(int i = 0; i < 100; i++){
	bw.write(i + "\n");
}
bw.flush();

이런 방법으로 출력을 하게 됩니다.

 

System.out.println()으로 계속해서 출력해주는 것과 StringBuilder와 BufferedWriter의 차이점은 계속해서 출력을 해주냐 or 모아서 한번에 출력을 하게 되느냐 입니다.

 

이해하기 쉽게 예시로 들자면

ex) 편의점에 음식을 1개씩 사와서 먹느냐 or 한번에 여러음식을 사와서 먹느냐

인거 같습니다.

 

자바로 문제를 푸실때 여러개의 출력을 하게 된다면 StringBuilder나 BufferedWriter를 주로 쓰는것을 추천드립니다.

(저는 StringBuilder를 주로 씁니다.)

728x90
반응형

'백준 > PS에서의 자바' 카테고리의 다른 글

메모리 제한 풀기  (0) 2023.02.09
int[] 활용하기  (2) 2022.01.07
[JAVA] PS에서의 Point  (0) 2021.11.01

댓글