백준 알고리즘/python_

[백준 알고리즘][python3] 2438번. 별 찍기 - 1

nanee_ 2021. 8. 3. 16:19
728x90
반응형
SMALL
 

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문의 반복이 끝나게 된다.

 

 

 

728x90
반응형
LIST