https://www.acmicpc.net/problem/2438
문제
첫째 줄에는 별 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문이 돌 때마다 횟수가 증가하면서 별이 출력되는 횟수도 증가한다.
'파이썬 > 파이썬 알고리즘' 카테고리의 다른 글
파이썬 백준 8393번 수학 합 (0) | 2021.02.16 |
---|---|
파이썬 백준 2742번 제문 는하력출 지까N 터부1 (0) | 2021.02.12 |
파이썬 백준 2439번 별 찍기 - 2 (0) | 2021.02.12 |
파이썬 백준 10871번 X보다 작은 수 (0) | 2021.02.12 |
백준 solved.ac 사용하여 난이도 정보 표시하기 (0) | 2021.02.11 |
댓글