코딩테스트

[C] 숫자 피라미드

갓 시작한 코린이 2022. 5. 26. 01:54

문제


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

 

#include <stdio.h>

int main() {

  //Please Enter Your Code Here
  int n,s;
  int array[100][100];
  scanf("%d %d",&n,&s);
  for(int i=0;i<n;i++)
  {
    for(int j=0;j<2*i+1;j++)
    {
      array[i][j]=s;
      s++;
      if(s==10) s=1;
    }
  }
  
  for(int i=0;i<n;i++)
  {
    for(int j=0;j<n-1-i;j++)
    {
      printf(" ");
    }
    if((i+1)%2==0)//짝수행일 경우 순서대로 1씩증가
    {
      for(int j=0;j<2*i+1;j++)
      {
        printf("%d",array[i][j]);
      }
    }
    else //홀수행일 경우 거꾸로 1씩증가
    {
      for(int j=2*i;j>=0;j--)
      {
        printf("%d",array[i][j]);
      }
    }
    printf("\n");
  }

  return 0;
}

'코딩테스트' 카테고리의 다른 글

[C] offset  (0) 2022.05.26
[C] array 3  (0) 2022.05.26
[C] 주사위 게임  (0) 2022.05.26
[C] Card game  (0) 2022.05.26
[C] 점수 계산  (0) 2022.05.26