본문 바로가기

교육/문제해결

[1일차] 사선으로 채우기

- 문제 설명

크기가 N*N인 2차원 배열에 다음과 같은 모양으로 숫자가 저장된다.

크기 N과 행, 열이 주어지면 해당 위치 숫자 출력

1    6    10    13    15

2    7    11    14

3    8    12

4    9

5

위 배열은 N이 6인 경우

- 입력

1 // 테스트 케이스 갯수

6 2 4 // N, 행, 열

- 출력

#1 8 

- 입력 예시

3
5 2 4
6 3 4
10 3 6

- 출력 예시

#1 7
#2 4
#3 21

- 코드

int arr[100][100];

int main(int argc, const char * argv[]) {

    int T;

    scanf("%d", &T);

    for(int tc = 1;tc <= T;tc++)

    {

        int N, row, col;

        scanf("%d %d %d",&N,&row,&col);

        int num = 1;

        for(int i=0;i<N;i++)

        {

            for(int j=i+1;j<N;j++)

            {

                arr[j-1-i][j] = num++; // 사선으로 채우기

            }

        }

        printf("#%d %d\n",tc,arr[row][col]);

    }

    return 0;

}