728x90
반응형
n = int(input())
if n == 1: # N이 1인 경우
print('*')
else: # N이 2 이상인 경우
for i in range(1, 2*n): # 총 2N-1 줄 출력
if i <= n: # 위쪽 삼각형 출력
print(' '*(n-i) + '*'*(2*i-1))
else: # 아래쪽 삼각형 출력
print(' '*(i-n) + '*'*(4*n-2*i-1))
input() 함수를 사용하여 입력을 받고, 입력된 값을 n에 저장합니다.
그리고 if 문을 사용하여 n이 1인 경우와 2 이상인 경우를 분리합니다.
n이 1인 경우에는 바로 별 하나를 출력하면 되므로, print('*')을 사용합니다.
n이 2 이상인 경우에는 2N-1줄을 출력해야 합니다.
이를 위해 for 문을 사용하여 1부터 2N-1까지 반복하면서,
각 줄마다 적절한 개수의 공백과 별을 출력합니다.
위쪽 삼각형을 출력할 때는,
i번째 줄에서 공백의 개수는 n-i개,
별의 개수는 2i-1개입니다.
이를 고려하여 print(' '*(n-i) + '*'*(2*i-1))를 사용하여 출력합니다.
아래쪽 삼각형을 출력할 때는,
i번째 줄에서 공백의 개수는 i-n개,
별의 개수는 4n-2i-1개입니다.
이를 고려하여 print(' '*(i-n) + '*'*(4*n-2*i-1))를 사용하여 출력합니다.
728x90
반응형
'코딩테스트 > PYTHON' 카테고리의 다른 글
백준 10798번 파이썬 풀이 (0) | 2023.03.24 |
---|---|
백준 1157번 파이썬 풀이 (0) | 2023.03.24 |
백준 11718 파이썬 풀이 (0) | 2023.03.19 |
백준 5622번 파이썬 풀이 (0) | 2023.03.19 |
백준 2908번 파이썬 풀이 (0) | 2023.03.19 |
댓글