C 프로그래밍 기초 - 2차원 배열
예제 복습하기
42. 2차원 배열 출력 1
#include <stdio.h>
int main(){
int i,j;
int n,k=1;
int arr[10][10];
scanf("%d", &n);
for(i=0;i<n;i++){
for(j=n-1;j>=0;j--){
arr[j][i]=k;
k++;
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%3d", arr[i][j]);
}
printf("\n");
}
return 0;
}
43. 2차원 배열 출력 2
#include <stdio.h>
int main(){
int i,j;
int n,k=1;
int arr[10][10]={0,};
scanf("%d", &n);
for(i=0;i<n;i++){
for(j=i;j>=0;j--){
arr[i][j]=k;
k++;
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%3d", arr[i][j]);
}
printf("\n");
}
return 0;
}
44. 2차원 배열 출력 3
#include <stdio.h>
int main(){
int i,j;
int n,k=1;
int arr[10][10]={0,};
scanf("%d", &n);
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(i==j || i+j==n-1){
arr[i][j]=k;
k++;
}
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%3d", arr[i][j]);
}
printf("\n");
}
return 0;
}
45. 방배정 1
#include <stdio.h>
#include <math.h>
int main(){
int i,j;
int num, maxNum;
int s,y;
int arr[2][7]={0, };
int sum=0;
scanf("%d %d",&num,&maxNum);
for(i=1;i<=num;i++){
scanf("%d %d", &s,&y);
arr[s][y]++;
}
for(i=0;i<2;i++){
for(j=1;j<7;j++){
sum=sum+ceil(arr[i][j]/(double)maxNum);
}
}
printf("%d\n",(int)sum);
return 0;
}
46. 방배정 2
#include <stdio.h>
#include <math.h>
int main(){
int i,j;
int num, maxNum;
int s,y;
int arr[2][7]={0, };
int sum,tmp=0;
scanf("%d %d",&num,&maxNum);
for(i=1;i<=num;i++){
scanf("%d %d", &s,&y);
arr[s][y]++;
}
for(i=0;i<2;i++){
for(j=1;j<=2;j++){
tmp+=arr[i][j];
}
}
sum+=ceil(tmp/(double)maxNum);
for(i=0;i<2;i++){
for(j=3;j<=5;j=j+2){
tmp=0;
tmp+=arr[i][j];
tmp+=arr[i][j+1];
sum+=ceil(tmp/(double)maxNum);
}
}
printf("%d\n",(int)sum);
return 0;
}