우당탕탕 파이썬 with 하루하나 알고리즘

백준 2439 파이썬 - 거꾸로 별 찍기! 근데 공백을 곁들인..

hyxndy 2022. 3. 22. 12:59

백준 2439번 - 별찍기-2 with python

Q. 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

입력> 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

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

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

 

2439번: 별 찍기 - 2

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

www.acmicpc.net


지난 번엔 왼쪽 정렬로 별을 찍어냈다면,

이번엔 오른쪽 정렬로 별을 찍어내야 한다

 

별찍기-1에서는 딱 별만 출력해주면 됐었는데,

이 문제에서는 마지막 줄을 제외한 나머지 줄에 공백이 포함된다.

 

예제에서와 같이 총 5줄을 출력해야한다고 했을 때

첫 번째 줄 -> 공백 4개 + 별 1개

두 번째 줄 -> 공백 3개 + 별 2개

세 번째 줄 -> 공백 2개 + 별 3개

네 번째 줄 -> 공백 1개 + 별 4개

다섯 번째 줄 -> 공백 0개 + 별 5개

로 출력해주어야 한다.

 

처음엔 복잡하고 어려워보이지만 규칙을 찾으면 된다.

for i in range(1,5) -> i가 1에서부터 5까지 숫자가 하나씩 늘어날 때

 

첫(1) 번째 줄 -> 공백 4개(5-1) + 별 1개

두(2) 번째 줄 -> 공백 3개(5-2) + 별 2개

세(3) 번째 줄 -> 공백 2개(5-3) + 별 3개

네(4) 번째 줄 -> 공백 1개(5-4) + 별 4개

다섯(5) 번째 줄 -> 공백 0개(5-5) + 별 5개

 

i에 해당하는 곳을 빨간색으로, N에 해당하는 곳에 파란색을 칠해줬으니 규칙이 보일 것이다!

 

그럼 이제 코드를 작성해보겠다~

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

곱하기 연산자를 통해 공백과 별을 반복해주었고,

더하기 연산자를 통해 두개를 연결해주었다.