dfs를 활용한 문제
규칙찾기가 쉽지않아 결국 답지를 보고야 말았던 문제 규칙은 생각 외로 단순했다.
import java.util.Arrays;
import java.util.Scanner;
public class b2448 {
static char[][] arr;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
arr = new char[N][N * 2 - 1];
for (int i = 0; i < N; i++) {
Arrays.fill(arr[i], ' ');
}
star(0, N-1, N);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < N; i++) {
for (int j = 0; j < 2 * N - 1; j++) {
sb.append(arr[i][j]);
}
sb.append('\n');
}
System.out.println(sb);
}
public static void star(int r, int c, int N) {
if (N == 3) {
arr[r][c] = '*';
arr[r + 1][c - 1] = arr[r + 1][c + 1] = '*';
arr[r + 2][c - 2] = arr[r + 2][c - 1] = arr[r + 2][c] = arr[r + 2][c + 1] = arr[r + 2][c + 2] = '*';
return;
} else {
int cut = N / 2;
star(r, c, cut);
star(r + cut, c - cut, cut);
star(r + cut, c + cut, cut);
}
}
}
'Algorithm & Data Structures > BOJ' 카테고리의 다른 글
1991. 트리 순회 (Java) (0) | 2023.12.24 |
---|---|
2096. 내려가기 (Java) (0) | 2023.12.18 |
14938. 서강그라운드 (Java) (1) | 2023.11.29 |
12851. 숨바꼭질2 (Java) (2) | 2023.11.28 |
1043. 거짓말 (Java) (0) | 2023.11.15 |