Dev/PS

[백준/BOJ] 2444번: 별 찍기 - 7 (Python) 풀이

KangJerry 2024. 6. 16. 23:18

Beakjoon Online Judge(BOJ) 의 2444번 문제인 '별 찍기 - 7' 를 풀어보았다.

 

[문제 정보]

https://www.acmicpc.net/problem/2444


문제 개요:

[ 문제 ]

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

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
[ 출력 ]

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

만약 5를 입력 받을 경우,

이런 마름모 형태로 별을 찍어주면 된다. (별의 개수가 1부터 홀수 간격으로 N번 늘어나는 형태)

 

풀이:

단순 구현 문제라 알고리즘은 없다.

for문을 2개 만들어서, 마름모를 각각 위아래로 나눠 따로 출력하도록 만들었다.

추가로 spaceCnt 라는 변수를 만들어, 별을 출력하기 전 공백을 간격에 맞게 출력하도록 했다. (ex. 맨 윗줄은 공백 4개/별 1개, 2번째 줄은 공백 3개/별 3개...)

유의할 점은, 별이 1부터 홀수 간격으로 늘어나고 줄어든다는 점과, 별을 위에서 N줄 출력했다면 아래에서는 N-1줄 출력해야 하는 점을 유의해야 한다. 

 

코드:

N = int(input())
spaceCnt = N-1

for i in range(1, N*2, 2):
    print(' ' * spaceCnt+'*' * i)
    spaceCnt -= 1
    
for i in range(N*2-3, 0, -2):
    spaceCnt += 1
    print(' ' * spaceCnt, '*' * i)

위 풀이에 대한 질문이나, 틀린 정보가 있다면 댓글로 말씀해 주시면 감사하겠습니다!

728x90