jyamethyst21 님의 블로그

백준 2523번- '별 찍기 - 13' (PYTHON 풀이) 본문

CODING 💻

백준 2523번- '별 찍기 - 13' (PYTHON 풀이)

jyamethyst21 2025. 12. 12. 00:05

문제:

 

오늘은 어제에 이어 별찍기 문제를 또 가지고 왔다. 별찍기 문제가 좀 재미있는 것 같다. 적당히 생각도 해야하고 코드도 간단하고!

시험 끝나면 더 어려운 문제를 풀도록 ...

.

.

이번 문제는 이전에 피라미드 문제를 풀었던 것을 생각하면 아주 쉽게 풀 수 있다. 관련 포스팅은 아래에 첨부하겠다.

https://jyamethyst21.tistory.com/108

 

백준 2446번- '별 찍기 - 9' (PYTHON 풀이)

문제:오랜만에 별찍기 문제를 가지고 왔다.역피라미드+피라미드 모양인데, 이번에도 역시 규칙을 찾아야 쉽게 풀 수 있다.필자는 쉽게 생각해서 앞서 말한 것처럼 역피라미드+피라미드 모양이

jyamethyst21.tistory.com

https://jyamethyst21.tistory.com/116

 

백준 2445번- '별 찍기 - 8' (PYTHON 풀이)

문제:다른 유형의 별찍기 문제를 가지고 왔다.조금 특이한 모양이긴 하지만 이전에 풀었던 별찍기 - 9를 참고하면 쉽게 풀 수 있다.https://jyamethyst21.tistory.com/108 우선 피라미드 + 역피라미드를 붙

jyamethyst21.tistory.com

 

위 문제보다 아주 쉬운 유형인 것 같은데, 우선 해당 문제는 공백을 찍을 필요가 없으므로 별을 찍는 규칙만 찾으면 된다.

우선 별이 1개에서부터 N만큼 커지다가 다시 1로 줄어드는 모습인데 이 경우 for문을 두개 써서 풀 수 있다.

1. 별 개수가 1부터 N이 되는 구간, 2. 별 개수가 N-1부터 1이 되는 구간 이렇게 두번으로 나눠서 풀어야 한다.

그래서 1번 방법을 풀 땐 별이 1번 찍히고 그 다음부터 +1 씩 찍히고 있으니 i를 1부터 시작해서 N까지 반복문을 돌면서 i만큼 별을 찍으면 된다.

반면 2번 방법을 풀 땐 별이 N-1부터 찍히고 그 다음부터 -1씩 줄어들며 찍히고 있으니 i를 N-1부터 시작해서 1까지 반복문을 돌면서 j만큼 별을 찍으면 된다.

 

풀이:

N = int(input())

for i in range(1, N+1):
    print("*" * i)

for j in range(N-1, 0, -1):
    print("*" * j)

위 설명을 그대로 코드로 작성하면 다음과 같다. 앞서 말한대로 두번으로 나누어서 반복문을 돌면 원하는대로 출력이 된다!