반응형
<아이디어>
# 최대 값을 찾기 위해서는 최소값을 넣어놓고, 그 값보다 큰 값이 들어오면 값을 업데이트해나가는 방법이 효과적이다.
1. 변수 max에 제일 작은 값 넣어두기
- int max = 0; 최대값 max라는 변수에 제일 작은 값을 넣어준다.
2. 2중 for 문으로 배열을 탐색하면서 max 값보다 큰 값이 있으면 값을 업데이트 해준다.
3. 행과 열의 번호를 찾는 것이기 때문에, max_r, max_c라는 변수를 B배열의 인덱스로 활용한다는게 중요하다.
반응형
#include<stdio.h>
int A[5][5]
void input(void)
{
int i, j;
scanf("%d", &N);
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
scanf("%d", &A[i][j]);
}
}
}
void main(void)
{
input();
int max_r = 0; // 인덱스 번호로 활용
int max_c = 0; // 인덱스 번호로 활용
int r, c;
int sum_r[5];
int sum_c[5];
// 각 행의 합과 열의 합을 B 배열에 담기
for( i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
{
sum_r[i] += A[i][j];
sum_c[j] += B[i][j]; // i값이 1로 갱신 되는 순간부터 열의 합이 구해진다.
}
}
for(r = 1; r< 5; r++)
{
for(c = 1; c < 5; c++)
{
if(sum_r[max_r] < sum_r[r]) max_r = r; // B[max_r]번째 값이 제일 크다고 가정했는데
if(sum_c[max_c] < sum_c[c]) max_c = c; // 그 값보다 큰 값이 있으면 인덱스 업데이트
}
}
printf("%d %d", max_r + 1, max_c + 1)
}
반응형