코드업 1084번은 세 개의 반복문으로 풀이할 수 있음
IDE에서는 잘 동작하는 코드를 제출하면 시간초과
결과를 받게 됨
이유는 자바의 System.out.println() 이 굉장히 느린 출력함수이기 때문
참고 : www.acmicpc.net/blog/view/57
그래서 BufferWriter를 사용하여 문제를 풀이함
BufferWriter는
bw.write("로 출력하고");
bw.flush();
로 버퍼 초기화를 하며
bw.close();
로 버퍼를 종료함
이를 사용하여 제출하였는데, 시간은 줄어들었지만 그래도 시간초과가 발생함.
버퍼를 초기화 하는 bw.flush() 를 매 for 문마다 실행해서 그런가 싶어
bw.flush()를 for 문 밖으로 빼서 마지막 한 번만 실행하게 했더니 통과 하였음.
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n1 = sc.nextInt();
int n2 = sc.nextInt();
int n3 = sc.nextInt();
int cnt = 0;
for (int i = 0; i < n1; i++) {
for (int j = 0; j < n2; j++) {
for (int k = 0; k < n3; k++) {
bw.write(i +" "+ j +" "+ k + "\n");
// bw.flush();
cnt ++;
}
}
}
bw.write(cnt + "\n");
bw.flush();
bw.close();
}
}