jyamethyst21 님의 블로그

백준 10991번- '별 찍기 - 16' (PYTHON 풀이) 본문

CODING 💻

백준 10991번- '별 찍기 - 16' (PYTHON 풀이)

jyamethyst21 2025. 12. 11. 12:54

문제:

 

새로운 유형의 별찍기 문제이다. 기존엔 공백을 넣을 때 공백 변수를 새로 만들어서 작성했는데, 이번엔 그렇게 하게 되면 원하는대로 출력이 안되어서 새로운 방법으로 공백을 찍어야했다.

그래서 어떤 규칙이 있는지 먼저 찾아봤는데, 우선 '공백 + 별 + 공백' 모양으로 찍히고 있다. 그리고 앞 공백수는 N(입력값) - i(라인)씩 찍히고 있다.

그리고 별은 해당하는 라인과 동일한 수가 찍히고 있으니 이를 코드로 작성하면 된다. 다만 별을 찍을 때 예제 출력을 유심히보면 '별 찍고 바로 공백' 형태를 띄고 있기 때문에 이 점을 유의해서 코드를 작성해야 한다!

 

 

풀이:

N = int(input())

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

앞서 설명한대로 작성하면 다음과 같다.

만약 N이 3이라면, 첫번째 줄에 공백은 3-1이니 공백이 2번 들어가고 곧바로 별이 1만큼 찍힐 것이다.(i가 1이니)

다음 줄의 공백은 3-2로 한번 들어가고 곧바로 별이 찍히는데 별+공백으로 찍히고 있으니 ' * * ' 이렇게 찍힐 것이다.

마지막으로 i가 3이 되는 마지막 줄은, 3-3으로 공백 0번, 별+공백은 3번 찍혀서 '* * * ' 이러한 형태로 작성될 것이다!

그래서 결과적으로는 원하는 별 모양인 다음과 같은 이미지가 출력된다!