본문 바로가기
코딩테스트 문제풀이(Python)

백준 2445번 문제풀이

by chanfficial 2022. 4. 17.

2445. 별 찍기 - 8

 

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

 

 

입력 : 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력 : 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

 

ex)

입력 : 5

출력 :

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

 

 

 

풀이

n = int(input())

for i in range(1, n+1, 1):
    print('*'*i + ' '*(2*n-2*i) + '*'*i)
for i in range(n-1, 0, -1):
    print('*'*i + ' '*(2*n-2*i) + '*'*i)

- 예제의 출력 부분을 보면 공백의 칸수가 8-6-4-2-0 순서로 감소하고 다시 0-2-4-6-8 순서로 증가하는 것을 알 수 있는데 여기서 2n-2i 라는 공식을 유추할 수 있었다.

또 모양을 뒤집은 것 까지 2번씩 출력해야 하므로 for문을 두 번 사용했고, print()에서도 '*' * i 를 두 번 넣어줬다.

만약 n=5 라면, 첫줄 부터 다섯째 줄까지 1부터 n까지 1씩 증가하며 양 끝에 * 을 i 씩 곱하여 한 번씩 출력하고 가운데 공백을 2*n-2*i 만큼 출력하게 된다.

여섯째 줄부터 아홉째 줄까지는 n-1부터 1까지 1씩 감소하며 양 끝에 * 을 i 씩 곱하여 한 번씩 출력하고 가운데 공백을 2*n-2*i 만큼 출력하게 된다.

'코딩테스트 문제풀이(Python)' 카테고리의 다른 글

백준 10991번 문제풀이  (0) 2022.04.18
백준 2446번 문제풀이  (0) 2022.04.17
백준 2523번 문제풀이  (0) 2022.04.17
백주 2522번 문제풀이  (0) 2022.04.17
백준 2444번 문제풀이  (0) 2022.04.17