개발은 처음이라 개발새발

[반복문/ python3] 2439번 별찍기 - 2 본문

파이썬/백준

[반복문/ python3] 2439번 별찍기 - 2

leon_choi 2022. 6. 1. 14:12
반응형

2438번에 이어 두번째 별찍기 문제입니다. 

2438번과 다른 점이 있다면 별의 위치입니다. 2438번에서는 별의 증가가 오른쪽으로 하나씩 늘어나는 반면

2439번은 역방향으로 왼쪽에서부터 하나씩 늘어나는 걸 확인할 수 있는데요. 방향을 바꾸기 위해서는 "공백"을 활용하면 됩니다.

 

예를 들어 파이썬에서 3*" "를 할 경우 공백이 3칸 생깁니다.

이때 반드시 큰 따옴표 사이에 한칸을 띄어줘야 공백이 적용됩니다. 코드를 한번 써보겠습니다.

 

N = int(input())

for i in range(1, N+1):

    #공백 만들기
    a = (N-i)*" "
    
    #* 곱하기
    b = i * "*"
    
    ab = a+b
    
    print(ab)

input 함수에 5를 넣기 때문에 " a= (N-i) * " " "은 " a = (5-i) * " " "와 같습니다. 그렇기 때문에 i=1일 때 공백은 4칸,

*은 1개만 출력됩니다. 공백이 먼저 출력되어야 하기 때문에 a를 앞에 별이 출력되는 b를 다음에 더해 프린트하면 

예제와 동일하게 출력됩니다. 

 

물론 위 코딩 처럼 a와 b로 따로 변수를 할 수 있지만 더 간략하게도 만들 수 있습니다.

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

 

반응형