백준
백준 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개 사각형은 *을 전달한다.
배운 내용 : 문자열 출력과 배열 출력 중 선택하기