[백준]2442번: 별 찍기 - 5(Java)

ywwwon01·2022년 8월 5일
0

알고리즘

목록 보기
5/13

문제

🔗 2442번: 별 찍기 - 5

첫 번째 시도(System.out.print() 이용)

code

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException  {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());

        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n - i; j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= 2 * i - 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

두 번째 시도(BufferedWriter 이용)

code

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
    public static void main(String[] args) throws IOException  {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine());

        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n - i; j++) {
                bw.write(" ");
            }
            for (int j = 1; j <= 2 * i - 1; j++) {
                bw.write("*");
            }
            bw.write("\n");
        }

        bw.flush();
    }
}

review

보시다시피

첫 번째, 두 번째 시도 간 차이는

출력할 때 System.out.print()를 썼는지, BufferedWriter를 썼는지의 차이밖에 없습니다!

그런데 위 캡처에서 시간을 비교했을 때 두 시도 간 엄청난 차이가 있음을 알 수 있었습니다!!

그냥 출력 한 번 하고 마는 문제였다면 이렇게까지 차이나진 않았을 것 같은데,

반복문에서 계속 함수를 호출하고 호출하고 호출.. 했기 때문에 시간이 계속 누적되면서 이런 차이가 나지 않았을까 생각 됩니다!

...

이상입니다.

profile
생각의 전개를 공유합니다.

0개의 댓글