728x90
반응형
핵심 포인트
- 기초 구현력
제출코드
N = int(input())
for i in range(1, N + 1):
print(' ' * (N - i) + '*' * (2 * i - 1))
for i in range(N - 1, 0, -1):
print(' ' * (N - i) + '*' * (2 * i - 1))
해설
먼저, 패턴을 분석해야합니다. 예시 출력을 보시면 $N = 5$일 때, 첫번째 줄부터 5번째 줄까지 공백 4개 + 별 1개, 공백 3개 + 별 3개, 공백 2개 + 별 5개, 공백 1개 + 별 7개, 공백 0개 + 별 9개임을 알 수 있습니다. 따라서, 현재 줄이 $i$번쨰 줄일 때 공백의 개수는 $N - i$이고 별의 개수는 $2i - 1$개임을 알 수 있습니다. 다음으로 6번째 줄부터는 공백의 개수가 역순으로 늘어나고 있기 때문에 $N - 1$부터 시작해서 $1$까지 $i$를 감소시키면서 공백의 개수는 $N - i$이고 별의 개수는 $2i - 1$개씩 출력하면 됩니다.
참고자료 및 그림출처
728x90
반응형
'Programming > Coding Problem' 카테고리의 다른 글
BOJ 25206번: 너의 평점은 (0) | 2023.05.20 |
---|---|
BOJ 10988번: 팰린드롬인지 확인하기 (0) | 2023.05.19 |
BOJ 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2023.05.19 |
BOJ 11718번: 그대로 출력하기 (0) | 2023.05.19 |
BOJ 9086번: 문자열 (0) | 2023.05.18 |