안경잡이 구루루

백준 2445 (별 찍기 - 8 ) [Python/파이썬] [Implemention/구현] 본문

파이썬(Python)/문제풀이(백준,BaekJoon)

백준 2445 (별 찍기 - 8 ) [Python/파이썬] [Implemention/구현]

구루루(gururu) 2023. 10. 30. 12:43
반응형

https://www.acmicpc.net/problem/2445

 

2445번: 별 찍기 - 8

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

 


나:

n = int(input())
for i in range(1,n+1):
    print(('*'*i+' '*(n-i))+(' '*(n-i)+'*'*i))
for i in range(n-1,0,-1):
    print(('*'*i+' '*(n-i))+(' '*(n-i)+'*'*i))

 

완성된 코드는 위와 같다. 

첫쨰 줄에는 입력값 n 을 받는다. 이때 정수형 int로 바꿔 나중에 계산에 사용할 수 있도록 함.

for 반복문을 이용해 별을 출력하고자 했다. 별 찍기 문제의 경우 문제에 구현에 대한 힌트가 존재한다.

위 문제의 경우 '첫째 줄 부터 2n-1 번째 줄까지 차례대로 별을 출력'시키게 되어있다. 

그리고 예제 출력을 통해 규칙을 유추하도록 되어있는데 나의 경우에는 별이 일정개수까지 증가하고 다시 감소하기 때문에 for 반복문을 두개 사용하고자 했다.

(1)
for i in range(1,n+1):
    print(('*'*i+' '*(n-i))+(' '*(n-i)+'*'*i))

첫번째 for 반복문의 경우 양쪽 끝의 별이 1개 부터 n 개까지 증가하고, 가운데 공백은 없어질때까지 감소하도록 식을 구현했다. 즉, 공백이 없는 별만 존재하는 줄까지 구현했다.

 

(2)
for i in range(n-1,0,-1):
    print(('*'*i+' '*(n-i))+(' '*(n-i)+'*'*i))

두번째 for 반복문의 경우 양쪽 끝의 별이 n-1개 부터 1개까지 감소하고, 가운데 공백의 개수가 증가하도록 식을 구현했다. 이때 반복문의 경우 위 반복문과 다르게 공백이 없는 줄을 제외한 나머지 줄을  구현했다.

반응형