on
[백준][Java] 2448번 별 찍기 - 11 (분할정복, 재귀)
[백준][Java] 2448번 별 찍기 - 11 (분할정복, 재귀)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
public class Main {
private static BufferedReader br = new BufferedReader( new InputStreamReader( System . in ));
private static BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( System . out ));
private static char [][] res;
private static boolean isBlank( int i, int j) {
if ( (i = = 0 & & j = = 0 ) | | (i = = 0 & & j = = 1 ) | |
(i = = 0 & & j = = 3 ) | | (i = = 0 & & j = = 4 ) | | (i = = 0 & & j = = 5 ) | |
(i = = 1 & & j = = 0 ) | | (i = = 1 & & j = = 2 ) | | (i = = 1 & & j = = 4 ) | |
(i = = 1 & & j = = 5 ) | | (i = = 2 & & j = = 5 )) {
return true ;
}
else
return false ;
}
private static void star( int x, int y, int unit) {
if (unit = = 3 ) {
for ( int i = 0 ; i < 3 ; i + + ) {
for ( int j = 0 ; j < 6 ; j + + ) {
if ( ! isBlank(i, j))
res[x + i][y + j] = '*' ;
}
}
return ;
}
unit / = 2 ;
star(x + unit, y, unit);
star(x, y + unit, unit);
star(x + unit, y + unit * 2 , unit);
}
public static void main( String [] args) throws IOException{
int N = stoi(br.readLine());
res = new char [N][ 2 * N];
for ( char [] arr : res)
Arrays.fill(arr, ' ' );
star( 0 , 0 , N);
for ( char [] arr : res) {
for ( char c : arr) {
bw.write(c);
}
bw.write( "
" );
}
bw.flush();
bw.close();
}
private static int stoi( String input) {
return Integer. parseInt (input);
}
}
from http://aig2029.tistory.com/318 by ccl(A) rewrite - 2021-10-03 01:01:24