반응형
코드
n = int(input())
for i in range(1, n + 1):
a = ' ' * (i - 1) + '*' * ((2 * (n - i) + 1))
print(a)
for j in range(1, n):
b = ' ' * (n - j - 1) + '*' * ((2 * j) + 1)
print(b)
설명
작아졌다가 다시 커지는 모양으로 나와야한다.
작아지는 부분은 공백을 늘리고 *은 줄이는 방법으로 (i-1)을 통해 처음에는 빈 공백에서 점차 늘려간다.
'*'은 n-1을 해주고 2배 늘린 값에 1을 더해 대칭을 위해 홀수로 만들어 준다.
마지막 한개까지 출력을 해준 후
두번째 for문에서 (1부터, n까지)범위를 지정하여 4번만 반복한다.
공백은 n-j에 -1을 더 빼서 공백을 맞춰준다.
'*' 2*j에 +1을 더해서 홀수로 만들어준다.
'알고리즘' 카테고리의 다른 글
[Python] 백준 2914번: 저작권 (0) | 2023.02.22 |
---|---|
[Python] 백준 2857번: FBI (0) | 2023.02.22 |
[Python] 백준 2442번: 별 찍기 -5 (0) | 2023.02.21 |
[Python] 백준 6749번: Next in line (0) | 2023.02.21 |
[Python] 백준 5554번: 심부름 가는 길 (0) | 2023.02.21 |
댓글