Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스 자바
- 클라이언트
- 이진수 변환
- java
- StringTokenizer
- 백준 N과 M 자바
- Queue
- index of
- 알고리즘
- 스택
- COS Pro
- 삼각형의 완성조건
- 자바
- 스프링부트 도커 배포
- Lv1
- lv0
- 오름차순 정렬
- 백준
- 프로그래머스 문자열 정렬
- 스프링부트 도커
- 큐
- SWEA
- Programmers
- 프로그래머스
- lv2
- 스프링부트 도커로 배포
- 문자열
- Stack
- 프로그래머스 풀이
- 버퍼
Archives
- Today
- Total
mun dev
[백준] 2447 별찍기 -10 자바(Java) 본문
문제설명
재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다.
크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다.
***
* *
***
N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다.
입력
첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3k이며, 이때 1 ≤ k < 8이다.
출력
첫째 줄부터 N번째 줄까지 별을 출력한다.
통과한 코드 ✅
import java.io.*;
public class Main {
static char [][] arr;
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(br.readLine());
arr=new char[n][n];
star(0,0,n,false);
StringBuilder sb=new StringBuilder();
for(int i=0; i<n; i++) {
for (int j = 0; j < n; j++)
sb.append(arr[i][j]);
sb.append('\n');
}
System.out.println(sb);
}
static void star(int x,int y, int n, boolean blank){
if(blank){
for(int i=x; i<x+n; i++)
for(int j=y; j<y+n; j++)
arr[i][j]=' ';
return;
}
if(n==1){
arr[x][y]='*';
return;
}
int size=n/3;
int cnt=0;
for(int i=x; i<x+n; i+=size){
for(int j=y; j<y+n; j+=size){
cnt++;
if(cnt==5){
star(i,j,size,true);
}else{
star(i,j,size,false);
}
}
}
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 24480 알고리즘 수업 - 깊이 우선 탐색 2 자바(Java) (0) | 2023.08.13 |
---|---|
[백준] 24479 알고리즘 수업 - 깊이 우선 탐색 1 자바(Java) (0) | 2023.08.13 |
[백준] 11660 구간합 구하기(5) 자바(Java) (0) | 2023.08.06 |
[백준] 1541 잃어버린 괄호 자바(Java) (0) | 2023.08.04 |
[백준] 28278 스택2 자바(Java) (0) | 2023.08.04 |