점점 강해지고 있습니다.
[Java] 백준 2447번: 별 찍기 - 10
풀이 방법
재귀함수를 이용하는 별 찍기 문제이다.
중간을 비워두기 위해 (i/num)%3==1 && (j/num)%3==1
이라면 공백을 채우고, 나머지는 별을 찍도록 했다.
System.out.println()
을 사용하면 시간 초과가 나니 StringBuilder나 BufferedWriter를 사용해야 한다.
풀이 코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class BOJ_2447_별_찍기_10 {
static StringBuilder sb;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
sb = new StringBuilder();
int input = Integer.parseInt(br.readLine());
for(int i=0; i<input; i++) {
for(int j=0; j<input; j++) {
printStars(i, j, input);
}
sb.append('\n');
}
System.out.println(sb);
}
private static void printStars(int i, int j, int num) {
if((i/num)%3==1 && (j/num)%3==1) sb.append(" ");
else {
if(num / 3 == 0) sb.append("*");
else printStars(i, j, num/3);
}
}
}
Thank You For Reading