파이썬(Python)/문제풀이(백준,BaekJoon)
백준 2444 (별 찍기 -7 ) [Python/파이썬]
구루루(gururu)
2023. 8. 30. 10:35
반응형
https://www.acmicpc.net/problem/2444
2444번: 별 찍기 - 7
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
www.acmicpc.net
나:
N = int(input())
for i in range(1,N+1):
print(' '*(N-i)+ '*'*(2*i-1))
for j in range(N-1,1-1,-1):
print(' '*(N-j)+ '*'*(2*j-1))
완성된 코드는 위와 같다,
우선 문제를 풀기 전 별 반복 횟수가 커졌다가 다시 작아지는 과정이라서 반복이 두번은 필요하다고 생각했다.
별의 개수는 첫째 줄에 입력받은 N에 따라 2N -1 의 규칙성으로 늘어나고 줄어드는 모습을 관찰 할 수 있다.
for i in range(1,N+1):
print(' '*(N-i)+ '*'*(2*i-1))
그래서 첫번 째 반복문은 별의 개수가 점점 늘어나는 과정을 구현했다.
그리고 별의 개수가 제일 많은 상황까지 출력한다. 즉, 별의 개수가 최대일 때 까지 출력함.
이때 range()함수는 끝의 숫자를 포함하지 않기 때문에 +1 을 해주었다.
for j in range(N-1,1-1,-1):
print(' '*(N-j)+ '*'*(2*j-1))
두번 째 반복문은 별의 개수가 점점 줄어드는 과정을 구현했다.
위에서 별의 개수가 최대일 때를 구현했으니 줄어드는 과정부터 반복하면 된다.
이때 위와 달리 개수가 줄어들기 위해 range() 함수의 step 부분에 -1을 주고 끝의 숫자포함하지 않아 -1 해줌
반응형