본문 바로가기

Coding Test

#2447 별찍기 JAVA

https://www.acmicpc.net/problem/2447

 

2447번: 별 찍기 - 10

재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이

www.acmicpc.net

package AtoI;

import java.util.Arrays;
import java.util.Scanner;

public class N2447 {
	
	private static final Scanner scan = new Scanner(System.in);
	private static char[][] star;

	public static void main(String[] args)  {
		
		int N = scan.nextInt();
		star = new char[N][N];
		
		for(int i=0; i<N; i++) {
			Arrays.fill(star[i], ' ');
		}
		
		starDraw(0, 0, N);
		for( int i=0; i<N; i++) {
			System.out.println(star[i]);
		}
	}
	
	public static void starDraw (int x, int y, int t) {
		if ( t == 1) {
			star[x][y] = '*';
			return;
		}
		
		int M = t/3;
		for(int i=0; i<3; i++) {
			for (int j=0; j<3; j++) {
				if ( i==1&j==1) {
					continue;
				}
				starDraw(x+M*i, y+M*j, M);
			}
		}
	}

	
}

그림에서 빈 부분을 볼 수 있는데 그 부분은 별을 채우지 않기 위해서 continue 구문 사용. 

'Coding Test' 카테고리의 다른 글

[소프티어] 장애물  (0) 2023.11.17
#1541  (0) 2021.05.18
#10989 수 정렬하기3  (0) 2021.03.30
#2562 최댓값 구하기 JAVA  (0) 2021.03.30
#1152 단어의 개수 JAVA  (0) 2021.03.30