알고리즘/입출력
[Python] 백준 10992번: 별 찍기 - 17 풀이
아뵹젼
2021. 1. 20. 16:44
소스코드1
n = int(input())
print(" "*(n-1) + "*")
if(n!=1):
for i in range(1,n-1):
print(" " * (n-1-i) + "*" + " " * (2*i-1) + "*")
print("*" * (2*n-1))
첫째줄과 마지막줄에 별 1개와 별 2n-1 개를 따로 출력해주고, 반복문안에서 나머지 별을 처리하는 코드이다.
그러나 비효율적이다.
소스코드2
n = int(input())
for i in range(1, n+1):
if(i==1 or i==n):
print(" " * (n-i) + "*" * (2*i-1))
else:
print(" " * (n-i) + "*" + " " * (2*(i-1)-1) + "*")
반복문 하나에서 조건문을 추가해 출력하는 코드이다.
첫번째 줄과 마지막줄을 한 코드로 합칠 수 있어 소스코드1보다 더욱 좋은 코드인 것 같다.