[C언어 코드업 문제풀이] CodeUp 1505 : 2차원 배열 채우기 3(달팽이 배열)
ET의 공부/C언어 연습문제[ 코드업 ]2020. 5. 5. 09:31
코드업 1505번 2차원 배열 채우기3(달팽이 배열) 문제 풀이 해답입니다.
1. 문제 설명
n이 입력되면 크기가 n인 다음과 같은 2차원 배열을 출력하시오.
입력 예)
3
출력 예)
1 2 3
8 9 4
7 6 5
2. 입력
2차원 배열의 크기 n이 입력된다.(n<=50)
3. 출력
크기가 n인 달팽이 배열을 출력한다.(설명참조)
4. 입력 예시
2
5. 출력 예시
1 2
4 3
6. 문제 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#include "stdio.h"
int main(void)
{
int Arr[101][101] = {};
int n;
scanf("%d", &n);
int x = 1;
int i = 1;
int j = 1;
int Xaxis = 1;
int Yaxis = 1;
for(int k = 1; k <= n*n; k++){
Arr[i][j] = x;
x++;
if( j <=n && Xaxis == 1 && Yaxis == 1){
if(j+1 <= n && Arr[i][j+1] == 0){j++;}
else{
i++;
Xaxis = -1;
}
}
else if( i <=n && Xaxis == -1 && Yaxis == 1){
if(i+1 <= n && Arr[i+1][j] == 0){i++;}
else{
j--;
Yaxis = -1;
}
}
else if( j >=1 && Xaxis == -1 && Yaxis == -1){
if(j-1 > 0 && Arr[i][j-1] == 0){j--;}
else{
i--;
Xaxis = 1;
}
}
else if(i >=1 && Yaxis == -1 && Xaxis == 1 ){
if(i-1 >0 & Arr[i-1][j] == 0){
i--;}
else{
j++;
Yaxis = 1;
}
}
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
printf("%d ",Arr[i][j]);
}
printf("\n");
}
return 0;
}
|
'ET의 공부 > C언어 연습문제[ 코드업 ]' 카테고리의 다른 글
[C언어 코드업 문제풀이] CodeUp 1507 : 4개의 직사각형 넓이 (0) | 2020.05.05 |
---|---|
[C언어 코드업 문제풀이] CodeUp 1506 : 2차원 배열 채우기 4(역달팽이 배열) (0) | 2020.05.05 |
[C언어 코드업 문제풀이] CodeUp 1504 : 지그재그 배열 2 (0) | 2020.05.05 |
[C언어 코드업 문제풀이] CodeUp 1503 : 지그재그 입력(2차원 배열) (0) | 2020.05.05 |
[C언어 코드업 문제풀이] CodeUp 1502 : 2차원 배열 채우기 2 (0) | 2020.05.05 |
댓글()