본문 바로가기

Python/백준알고리즘

[백준알고리즘 2447 별찍기] python solution

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

 

2447번: 별 찍기 - 10

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

www.acmicpc.net

재귀 함수를 이용해야 하는 문제입니다. 제일 기초 케이스를 k = 3으로 재귀를 종료하게 만들었고, k > 3 인 케이스는 설명을 위해 k = 9 인 케이스로 제한합니다. 시작으로 k = 3 이 되는 기초 케이스를 temp에서 3배를 하여 사각형의 가로길이를 늘립니다. 그리고 반복문으로 각 요소마다 3배를 하여 세로 길이를 늘렸다. 그러면 다음 사각형이 만들어집니다.

*********
* ** ** *
*********
*********
* ** ** *
*********
*********
* ** ** *
********* 

여기서 중심 구역을 없애야 하는데, tem_s에서 문자열을 그대로 가져올 때 중심 부분 구역에 대한 인덱스일 때, 공백을 더해줍니다. 그 후 조건을 만족하는 i 위치의 문자열을 대체시켜주고 출력해 줍니다. 

 

 

반응형