2446. 별 찍기 - 6
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력 : 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.출력 : 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
ex)입력 : 5
출력 :
*********
*******
*****
***
*
***
*****
*******
*********
풀이
n = int(input())
for i in range(n, 0, -1):
print(' '*(n-i) + '*'*(2*i-1))
for i in range(2, n+1, 1):
print(' '*(n-i) + '*'*(2*i-1))
- 출력 예제를 보면 * 의 개수는 9-7-5-3-1 순으로 감소했다가 다시 1-3-5-7-9 순으로 증가하며 홀수 개로만 출력되는 것을 알 수 있고 공백의 칸수는 0-1-2-3-4, 4-3-2-1-0 순으로 1씩 증가했다 감소하는 것을 알 수 있다.
공백의 칸수는 n-i 를 곱한 만큼 출력되며 * 의 개수는 2 * i - 1 를 곱한 만큼 출력되는 공식을 찾았고,
이때 * 한 개를 사이에 두고 대칭을 이루도록 출력해야 하기 때문에 for 문을 두 번 사용했다.
만약 n=5라면, 첫줄 부터 다섯째 줄까지는 n부터 1까지 1씩 감소하며 공백과 * 을 출력하고
여섯째 줄부터 아홉째 줄까지는 2부터 n+1씩 1만큼 증가하며 공백과 * 을 출력하게 된다.
'코딩테스트 문제풀이(Python)' 카테고리의 다른 글
백준 10995번 문제풀이 (0) | 2022.04.18 |
---|---|
백준 10991번 문제풀이 (0) | 2022.04.18 |
백준 2445번 문제풀이 (0) | 2022.04.17 |
백준 2523번 문제풀이 (0) | 2022.04.17 |
백주 2522번 문제풀이 (0) | 2022.04.17 |