소스코드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보다 더욱 좋은 코드인 것 같다.
'알고리즘 > 입출력' 카테고리의 다른 글
[Python] 백준 10991번: 별 찍기 - 16 풀이 (1) | 2021.01.20 |
---|---|
[Python] 백준 2446번 : 별 찍기 - 9 풀이 (0) | 2021.01.20 |
[Python] 백준 2522번: 별 찍기 - 12 풀이 (0) | 2021.01.20 |
[Python] 백준 2445번: 별 찍기 - 8 풀이 (0) | 2021.01.20 |
[Python] 백준 2442번: 별 찍기 - 5 풀이 (0) | 2021.01.20 |
댓글