백준

백준 2447 - 별 찍기 10

황태건 2023. 5. 1. 10:09

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

 

2447번: 별 찍기 - 10

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

www.acmicpc.net

분할 정복 알고리즘을 이용하는 문제이다.

 

n = 3인 기본 패턴을 출력하는 데 줄바꿈이 들어가므로,

재귀함수에서 직접 문자열 출력을 해서는 안 되며 배열에 값을 저장한 뒤 재귀가 끝나면 한번에 출력해야 한다.

 

크기가 nXn인 2차원 char 배열을 생성하고 n에 대해 재귀함수를 호출한다.

이 재귀함수는 크기가 nXn인 정사각형을 가로세로 3등분하여, 총 9개의 작은 정사각형에 대해 다시 자기 자신을 호출한다.

n = 3일 경우 아래와 같은 문제의 기본 패턴을 출력한다.

* * *

*   *

* * *

이때, 9개의 작은 정사각형 중 중앙에 위치한 사각형은 공백으로 만들어야 하므로,

재귀함수의 인수에 패턴을 채울 문자의 종류를 추가한다.

중앙의 사각형을 호출할 때는 인수로 ' ', 공백을 전달한다. 나머지 8개 사각형은 *을 전달한다.

 

배운 내용 : 문자열 출력과 배열 출력 중 선택하기