문제 바로가기

 

2523번: 별 찍기 - 13

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100) 주어진다.

출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.


내 소스

N = int(input())
for i in range(1, (2*N)):
  if i <= N:
    print('*'*i)
if i > N:
  for j in range(2*N-1, N, -1):
    print('*'*(j-N))

더보기

이 문제는 좀 애를 먹었다. 처음에는 아래처럼 코드를 작성했더니

N = int(input())
for i in range(1, (2*N)):
if i <= N:
print('*'*i)
if i > N:
print('*'*(i-N))

*
**
***
*
**

이런식으로 4~5번째 줄 출력이 이상하게 나왔다. 그래서 다시 아래처럼 수정을 했다.

N = int(input())
for i in range(1, (2*N)):
if i <= N:
print('*'*i)
if i > N:
for j in range(2*N-1, N, -1):
print('*'*(j-N))

*
**
***
**
*
**
*

근데 또 이번에는 4~5번째 줄이 한번 더 출력되는거다!!! 암튼 if i>N을 처음 for문 밖으로 꺼내서 해결했다...

+ Recent posts