[백준 알고리즘][python3] 2438번. 별 찍기 - 1
2438번: 별 찍기 - 1
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
www.acmicpc.net
# 문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번 째 줄에는 별 N개를 찍는 문제
# 입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
# 출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
# 정답입니다!
# ver01
a = int(input())
for i in range(a) :
for j in range(a):
if j <= i:
print('*', end = '')
print()
5
*
**
***
****
*****
이중 for문을 이용해서 i번째(행)에서 j번(열)을 돌면서 조건에 맞으면 '*'을 출력하게 하는 코드이다.
조건은 각 행별로 행의 번호만큼 '*'을 찍어주면 되므로, i(행) 보다 j(열)가 작거나 같을 때로 했다.
두번째 for문( j )를 실행할 때는 한 줄에 표현이 되어야 하므로 print의 줄바꿈 기능을 없애주기 위해서 end=' ' 를 적어주었고,
해당 for문( j )이 끝나면 다음 행으로 줄바꿈을 해주기 위해서 print()를 추가해 주었다.
# ver02
a = int(input())
for i in range(1, a+1) :
print('*' * i)
5
*
**
***
****
*****
ver1의 해결 방법보다 좀 더 간결해진 코드이다.
몇 줄을 만들지 a로 입력받은 후 for문을 활용해서 1부터 a+1번까지 한 줄당 i개 만큼 '*'을 찍어내는 코드이다.
# ver03 (while문)
a = int(input())
n = 1
while n <= a:
print('*' * n)
n += 1
5
*
**
***
****
*****
이번에는 while문을 사용해서 풀어보았다.
전과 동일하게 몇 줄을 만들건지 변수 a를 만들어 숫자를 입력받는다.
n=1 으로 시작점을 만들어 주었고, n이 a와 같아질 때까지 반복하게 한다.
한 과정이 실행이 될 때마다 한 줄에 n번 만큼 '*'을 찍어주고, n을 1씩 증가시켜준다.
위의 과정이 반복되다가 n과 a가 같아지면 while문의 반복이 끝나게 된다.