[python] 백준 2445 - 별 찍기 8

안영우·2021년 3월 16일
0

[ BOJ ]

목록 보기
8/8
post-thumbnail

📍 백준 2445 - 별 찍기 8

백준 2445 - 별 찍기8

⚡️ 나의 풀이

예제 출력에서 가로로 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))
profile
YW_Tech

0개의 댓글