반응형
처음 코드 - 출력 형식이 잘못되었습니다
for i in range(1,n+1):
print(" "*(n-i),"*"*(2*i-1))
for i in range(1,n):
print(" "*i,"*"*(2*n-2*i-1))
잘못된 출력과 그 이유:
이렇게 보면 모르겠지만, 공백을 '-'로 바꾸니...
'-'과 '*' 사이에 공백이 있다.
따라서 이 공백을 없애야 정상 출력이 된다.
고친 코드:
n = int(input())
#5면 1 3 5 7 9 - 길이: n+(n-1) = 2n-1
#공백8 6 4 2 0
# n-1, n-2, n-3, n-4
for i in range(1,n+1):
print(" "*(n-i)+"*"*(2*i-1))
#n이 5면
#공백(i): 1 2 3 4
#별: 7 5 3 1
# 9 = 2n-1 (total)
# 2n-1 - 2i = 9-2i
for i in range(1,n):
print(" "*i+"*"*(2*n-2*i-1))
이전에 연결할 때 콤마(,)를 사용했지만, 이번에는 플러스(+)로 연결했더니 정상적으로 출력된다
(-)로 체크한 결과:
로직은 주석 참조
반응형
'코테준비 > 백준(Python)' 카테고리의 다른 글
백준 25192 파이썬 - 시간초과 해결 (0) | 2024.11.12 |
---|---|
백준 10828 스택 파이썬 (0) | 2024.11.12 |
백준 10811 바구니 뒤집기 Python (0) | 2024.11.11 |
백준 10813 공바꾸기 Python (0) | 2024.11.11 |