문제

N과 시작 숫자 S가 주어지면 숫자 피라미드를 만드는 프로그램을 작성하시오.
예를 들어, N이 5이고 S가 3 이라면, 그 숫자 피라미드는 다음과 같다.

    3
   456
  21987
 3456789
987654321
  • 시작 숫자 S는 꼭대기부터 1씩 증가한다.
  • 시작 행의 번호가 1번이라고 했을때, 짝수번째 행은 왼쪽에서 오른쪽으로 1씩 증가하도록 적고, 홀수번째 행은 거꾸로 적는다.
  • 숫자가 만약 10이 될 경우, 1로 바꾸고 다시 증가한다.  

입력

입력의 첫 번째 줄에 N과 시작 숫자 S가 주어진다. ( 1≤N≤100, 1 ≤S≤ 9)

 

출력

첫 번째 줄부터 숫자 피라미드를 출력한다. (각 줄에 존재하는 공백의 개수와 숫자의 개수를 정확하게 확인해주시바랍니다.)

 

예제 입력

5 3

예제 출력

    3
   456
  21987
 3456789
987654321

 
풀이
 - 정상적으로 출력한걸 리스트에 담아서 짝수인 경우 reverse() 출력
n, s = map(int, input().split())
num_list = []
for i in range(n) :
    temp = []
    for j in range(n-i-1) :          #오른쪽 공백
        temp.append(" ")
    for j in range((i*2)+1) :         #별
        if s == 10 :
            s = 1
        if s < 10 :
            temp.append(str(s))
            s += 1
            continue
    for j in range(n-i-1) :          #왼쪽 공백
        temp.append(" ")
    num_list.append(temp)

for i in range(len(num_list)) :
    if i % 2 == 0 :
        num_list[i].reverse()
    print("".join(num_list[i]))
[랩스 | 구현] 반복문&배열_숫자피라미드(별찍기, 피라미드)