[BOJ/백준-Python]2439번 - 별 찍기 - 2

2439번 - 별 찍기 - 2

문제

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

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

입력

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

출력

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

예제 입력 1

5

예제 출력 1

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

해결할 방법을 생각해보자.💡

정수를 입력 받아준다.

N = int(input())

그리고 생각해보자.

  • N이 2일 때,

    •  *
      **
      
  • N이 3일 때,

    •   *
       **
      ***
      
  • N이 4일 때,

    •    *
        **
       ***
      ****
      

이렇게 출력되야 한다.

그렇게 되려면 반복문에서 사용하는 변수 i를 1부터 시작해 N까지 1씩 늘려주면 된다. range(1, N+1)이렇게 반복문을 사용해주면되는 것이다.

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

이제 출력할 때가 중요하다. 보면은 N만큼의 줄이 출력된다. 마지막 줄의 출력은 N개만큼의 *이 출력되고, 그 이전 줄에는 공백(' ') 1개와 N-1개의 *이 출력된다. 또, 그 이전의 줄에는 공백(' ') 2개와 N-2개의 *이 출력된다.

이러한 점을 유추해 보아, N-i개 만큼 공백을 출력해주고 i개 만큼 *을 출력해주면 해결할 수 있는 문제다.

N이 3일 경우를 따져보면 이렇기 때문이다.

  * i = 1,  N = 3. 공백 2개(N-i), * 1개(i)
 ** i = 2,  N = 3. 공백 1개(N-i), * 2개(i)
*** i = 3,  N = 3. 공백 0개(N-i), * 3개(i)

따라서, for문 안에 이렇게 적어주면 된다.

    print((' ' * (N-i)) + (i * '*'))

코드💻

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

해결 로그

문제 푼 날짜 체크
2022-02-13
   
   
   
   

2022

[web]jQuery 복습 3

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 2

13 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 1

14 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리4

5 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리3

10 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리2

7 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리1

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]CSS 기초 정리

11 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]HTML 기초 정리

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[Pandas]pandas 연습

3 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑

2021

[Python기초]module

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑