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 |