문제
작성 코드
#1차
a = int(input())
b = 2*a-1
for i in range(1,a+1):
p = 2*i-1
print(" "*((b-p)//2),"*"*p," "*((b-p)//2))
for i in range(1,a):
p = i
print(" "*p,"*"*(b-2*p)," "*p)
처음꺼는 이렇게 작성했음
출력은 완벽하게 되는데 출력 방식이 잘못 됐다고 해서 for문 두개 겹쳐써서 그런 것 같아서 두개를 연결하는 방식으로 변경했다
#2차
a = int(input())
b = 2*a-1
for i in range(1,b+1):
if i>a:
p = i-a
print(" "*p,"*"*(b-2*p))
else:
p = 2*i-1
print(" "*((b-p)//2), "*"*p)
머리 쥐어짜서 연결해놨는데 또 안된다고.. 그래서 질문 게시판도 참고했는데
" "*((b-p)//2),"*"*p," "*((b-p)//2) 가 아니라 맨 뒷부분은 공란이어야한다고 했다.
그래서 지우고 냈는데도 또 출력 방식 잘못 됐다고 해서 다시 질문게시판을 참고..
마지막으로 리스트에 print문 내의 문자열을 원소로 넣어서 마지막에 주르륵 출력하는 방식으로 시도했다
#3차
a = int(input())
b = 2*a-1
ls = []
for i in range(1,a+1):
p = 2*i-1
ls.append((" "*((b-p)//2))+("*"*p))
for i in range(1,a):
p = i
ls.append((" "*p)+("*"*(b-2*p)))
for li in ls:
print(li, end='\n')
이렇게 했더니 성공하고 마무리했다