문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
예제 입력 1
5
예제 출력 1
* *
** **
*** ***
**** ****
**********
**** ****
*** ***
** **
* *
정답
기본적인 별찍기 문제이다. 너무 어렵게 생각해 문제를 복잡하게 만들지 말고 침착하게 파악한 뒤 가장 기초적인 기능부터 추가해보며 문제를 풀어나가자.
# 반복할 횟수 n의 값을 입력받는다.
n = int(input())
# i에 1,2,3...n 값을 넣어 루프를 돌려준다
for i in range(1, n+1):
# i의 값 만큼 *를 출력하고 줄은 바꾸지 않는다.
print("*" * i, end="")
# 가로열에서 i를 빼준 뒤 2를 곱해준 값만큼 공백을 출력하고 줄은 바꾸지 않는다.
print(" "*((n-i)*2), end="")
# 나머지 *을 출력하고 출을 바꿔준다.
print("*" * i)
# for문이 끝나 별찍기의 절반이 완성되면
else:
# 다시한번 루프를 돌려주는데 이번엔 n...3,2,1과 같이 숫자가 감소하도록 루프를 돌린다.
for i in range(n-1, 0, -1):
# 위 코드와 같이 출력해준다.
print("*" * i, end="")
print(" "*((n-i)*2), end="")
print("*" * i)
'코딩딩 > BOJ' 카테고리의 다른 글
[백준 1158] 문제풀이 (0) | 2023.05.19 |
---|---|
[백준 17413] 문제풀이 (0) | 2023.05.19 |
[백준 1541] 문제풀이 (0) | 2023.05.19 |
[백준 24511번] 문제풀이 (0) | 2023.05.17 |
[백준 10845번] 문제풀이 (1) | 2023.05.16 |