BOJ 2439 - 별 찍기 - 2 (Python3)

2022. 11. 15. 22:38Bronze/Bronze IV

고전도 출력 방식만 살짝 바꿈으로서 상당히 골치 아프게 만들 수 있다.

물론 이게 골치 아프다는 말은 아니다. 별 찍기 한 10번쯤은 가야 골이 정말로 아프지 않을까 싶다.

지금 하는 별 찍기는 단순히 초보적인 구현 연습 문제, 여기서 턱턱 막히더라도 아직 좌절하진 말자. 막 시작하는 타이밍이니.

 

그럼 본격적으로 풀이에 돌입해 보자.


문제

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

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

 

입력

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

 

예제 입력)

5

 

출력

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

 

예제 출력)

    *
   **
  ***
 ****
*****

 


내 코드

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

 

우선 n에다 입력받은 정수를 저장해 주자.

자, 위에서부터 0번째 줄, 1번째 줄, ... n-1번째 줄이라고 할 때, i번째 줄에는 별이 i+1개가 찍히는 것을 알 수가 있다.

그러면 i번째 줄의 공백 갯수는 몇 개인가? 몇 번째 줄이든 n개의 문자가 찍혀야만 하므로, n-1-i개의 공백이 찍혀야만 하겠다.

그러한 문자열이 바로 " "*(n-1-i)+"*"*(i+1)이 되는 것이고.

 

이로서 2439번의 풀이를 마친다.

그럼, 오늘도 당신의 코딩 실력이 상승하기를.

728x90

'Bronze > Bronze IV' 카테고리의 다른 글

BOJ 11720 - 숫자의 합 (Python3)  (0) 2022.11.14