BOJ_2446 별 찍기 - 9
- TOC {:toc}
이 글은 백준 온라인 저지의 2446번 문제를 파이썬(Python)으로 풀이한 것을 모아놓은 글입니다.
일종의 연습 기록이며 제가 정답을 받은 코드와 참고할만한 다른 코드를 같이 기록합니다. 필요한 경우 코드에 대한 해설을 기록합니다만 코드는 통과했어도 해설은 틀릴 수 있기 때문에 가볍게 참고해주시길 부탁드립니다. 피드백은 편하신 방법으로 자유롭게 주시면 감사하겠습니다.
2021.04.14
메모리 | 시간 | 코드 길이 |
---|---|---|
28776 KB | 68 ms | 158 B |
N = int(input())
# 처음부터 중간 직전까지 출력
for i in range(N, 1, -1):
print(" " * (N - i) + "*" * (2 * i - 1))
# 중간부터 마지막까지 출력
for i in range(1, N + 1):
print(" " * (N - i) + "*" * (2 * i - 1))
참고 답안
N = int(input())
for i in range(-N + 1, N):
i = abs(i)
print(" " * (N - i - 1) + "*" * (2 * i + 1))
아이디어 & 풀이
절댓값(abs
)을 사용해서 반복문 한 번으로 순회를 돌았다.
-
절댓값 대신 다음과 같은 조건을 추가해도 된다.
if i > N: i = 2 * N - i
-
range()
의 범위가(-N, N + 1)
이 아니고(-N + 1, N)
이어야2N - 1
번 출력한다.- 예시에서
N = 5
이므로i
가 순회를 -5 ~ 5까지 도는 게 아니라 -4 ~ 4로 돌아야 알맞은 수의 줄이 출력된다.
- 예시에서
-
ps-python