역으로 별찍기는 for문 총 3개를 사용하면 쉽게 풀리지만,

for문 2개만을 사용하는 더 알고리즘스러운(?) 방법을 정리했고,

System.out.print를 사용하는 것이 아닌 BufferedWriter를 사용했다.

System.out.print를 사용하는 것보다 BufferedWriter를 사용했을 때가 속도가 2초정도 빨랐다. 훨씬 빠르다...

System.out.print도 코드를 따라가다 보면 결국엔 BufferedWriter를 사용해서 출력하고 있는 것을 알게 되었다.

 

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 = 0; i < n; i++){
            for(int j = n-1; j >= 0; j--){
               if(i>=j)
                bw.write("*");
               else
                bw.write(" ");
            }
            bw.write("\n");
        }

bw.flush();
bw.close();
br.close();
}

}

 

출처: 백준알고리즘

'배운 내용 정리 > 알고리즘' 카테고리의 다른 글

백준 1110번 JAVA  (0) 2021.07.31

+ Recent posts