BOJ_10992 별 찍기 - 17
- TOC {:toc}
이 글은 백준 온라인 저지의 10992번 문제를 파이썬(Python)으로 풀이한 것을 모아놓은 글입니다.
일종의 연습 기록이며 제가 정답을 받은 코드와 참고할만한 다른 코드를 같이 기록합니다. 필요한 경우 코드에 대한 해설을 기록합니다만 코드는 통과했어도 해설은 틀릴 수 있기 때문에 가볍게 참고해주시길 부탁드립니다. 피드백은 편하신 방법으로 자유롭게 주시면 감사하겠습니다.
2021.04.14
메모리 | 시간 | 코드 길이 |
---|---|---|
28776 KB | 68 ms | 184 B |
N = int(input())
for i in range(1, N):
if i == 1:
print(" " * (N - 1) + "*")
else:
print(" " * (N - i) + "*" + " " * (2 * i - 3) + "*")
print("*" * (2 * N - 1))
아이디어 & 풀이
세 파트로 나누어서 생각해야 한다.
- 처음 꼭대기의 별 한 개.
- 중간에 별 두 개로 이루어진 부분.
- 마지막에 한 줄 전체를 별로 출력하는 부분.
N
이 1인 경우는 첫 번째 부분이나 마지막 부분 중 하나를 생략하도록 별도로 지정해주어야 한다.
중간 부분은 range()
범위 시작을 1이나 2로 잡으면 자연스럽게 경우를 나눌 수 있다.
참고 답안
# 풀이 1-1
n = int(input())
print(" " * (n - 1) + "*")
for i in range(2, n):
print(" " * (n - i) + "*" + " " * (2 * (i - 1) - 1) + "*")
# 마지막 부분에 1을 예외처리
if n > 1:
print("*" * (2 * n - 1))
# 풀이 1-2
n = int(input())
# 첫 번째 부분에 1을 예외처리
if n != 1:
print(" " * (n - 1) + "*")
for i in range(1, n - 1):
print(" " * (n - i - 1) + "*" + " " * (2 * i - 1) + "*")
print("*" * (2 * (n - 1) + 1))
-
ps-python