예제 출력에서 가로로 2등분하고 풀면 쉽게 접근할 수 있다.
2등분했다는 이야기는 결국 반복문이 총 2개 사용된다는 이야기다.
여기서 세로로 2등분을 또 해보자.
이전의 별 찍기 문제들의 패턴과 유사한 모양들이 나온다.
예제 출력에서 패턴사이에 있는 공백을 생각해보자.
1번패턴을 보면 출력뒤에 공백이 존재한다는 점을 알 수 있다.
이전에 풀었던 별찍기 1, 2, 3을 보면 출력뒤에 공백이 존재하지 않는다.
이제 공백을 어떻게 줄건지 생각해보자.
공백이 자릿수만큼 정해진것이 아니고 i가 증가할때마다 공백이 줄어드는것을 볼 수 있다.
이를 코드로 구현하면
'*' * i + ' '*(n-i)
가 될것이고 이를 반대로 작성하면 2번패턴이 될 수 있다.
가로로 2등분을 했으니까 반복문의 범위를 거꾸로해서 작성하면 예제출력과 일치한다.
n = int(input())
for i in range(1, n+1):
print(('*'*i) + ' '*(n-i) + ' '*(n-i) + ('*'*i))
for j in range(n-1, 0, -1):
print(('*'*j) + ' '*(n-j) + ' '*(n-j) + ('*'*j))