728x90
https://www.acmicpc.net/problem/2448
package BKD_0x0B_Recursion;
import java.io.*;
public class BOJ_2448 {
static int N;
static char[][] arr;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
N = Integer.parseInt(br.readLine());
arr = new char[N][2*N-1];
stars(0,N-1,N);
for(char[] arr_1 : arr){
for(char val : arr_1){
if(val!='*'){
bw.write(' ');
}else{
bw.write(val);
}
}
bw.write('\n');
}
bw.flush();
bw.close();
}
static void stars(int x, int y,int n){
if(n==3){
arr[x][y] = '*';
arr[x + 1][y - 1] = arr[x + 1][y + 1] = '*';
arr[x + 2][y - 2] = arr[x + 2][y - 1] = arr[x + 2][y] = arr[x + 2][y + 1] = arr[x + 2][y + 2] = '*';
return;
}
int nn = n/2;
stars(x,y,nn); //상
stars(x+nn,y-nn,nn); //좌
stars(x+nn,y+nn,nn); //우
}
}
기본 정보
- 입력값(N) : 높이
- 밑변 길이 : 2*N-1
- 꼭짓점 좌표 : (x,y)
- 좌측 꼭짓점 좌표 : (x+n/2, y-n/2)
- 우측 꼭짓점 좌표 : (x+n/2, y+n/2)
함수 정의:
가운데가 비어있는 삼각형을 출력하는 함수
Base Condition :
삼각형의 높이(n)가 3일 때
Recursion:
stars(x,y,n); //상
stars(x+n,y-n,n); //좌
stars(x+n,y+n,n); //우
삼각형의 가운데를 제외한 세 군대로 기준을 내려 재귀함수를 수행
BufferedWriter 쓰세요
알고싶지 않았어요
728x90
'🐣 알고리즘 삐약 > 💻 백준 삐약' 카테고리의 다른 글
99 삐약 : 백준 1182 | 부분 수열의 합 [바킹독| 백트래킹 |JAVA] (0) | 2024.09.15 |
---|---|
98 삐약 : 백준 9663 | N-Queen [바킹독| 백트래킹 |JAVA] (0) | 2024.09.15 |
96 삐약 : 백준 2447 | 별 찍기 - 10 [바킹독| 재귀 |JAVA] (0) | 2024.09.15 |
95 삐약 : 백준 2630 | 쿼드트리 [바킹독| 재귀 |JAVA] (0) | 2024.09.11 |
94 삐약 : 백준 2630 | 색종이 만들기 [바킹독| 재귀 |JAVA] (0) | 2024.09.11 |