본문 바로가기
파이썬/파이썬 알고리즘

파이썬 백준 2438번 별 찍기 - 1

by Go! Jake 2021. 2. 12.

 

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

 

2438번: 별 찍기 - 1

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

www.acmicpc.net

문제

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

 

문제 설명

별 개수를, 입력 횟수만큼 하나씩 늘려가면서 맞춰서 출력하면 된다.

풀이 과정

Point 1: for문이 돌 때, '한번에' 횟수만큼 별을 찍어줘야 한다.

for문 각각마다 어떻게 한번에 별을 많이 찍을지 고민을 좀 하다가, 문자열도 곱셈이 가능하다는 점에 착안하였다.

import sys
N=int(sys.stdin.readline())
for i in range(1,N+1):
    print("*"*i)

- 입력 인자 받기

N=sys.stdin.readline() 함수를 사용 해 사용자의 입력 인자를 받도록 하였다. input() 함수를 써도 상관은 없을 것.

*여기서 주의할 점은, intput() 함수와 sys.stdin.readline() 함수는 모두 문자열을 출력하기 때문에 이를 정수형으로 고쳐주어야 한다.

따라서 range 내에도 int(sys.stdin.readline()) 처리를 해 주었다.

 

- for문 구성

N 횟수만큼 Case를 돌릴 것이어서, int(N)처리 후 for문에서 range(1,N+1)로 변경 해준다. 또한 range(1,N)으로 하면, 1,2,3,...N-1까지 계산되므로 이에 유의한다.

 

- 정상적으로 print하기

 print("*"*i)

핵심은 윗 부분에 있다. "*"라는 문자열을 i번만큼 곱해주면 그 만큼의 횟수가 출력된다. 이에 따라 for문이 돌 때마다 횟수가 증가하면서 별이 출력되는 횟수도 증가한다.

 

댓글