완전 탐색으로 모든 경우의 답을 구하면서 최대 값을 발견할 때 마다 maxSum의 값을 갱신해주었다.
행과 열의 합은 같은 숫자를 이용해서 index를 만들어낼 수 있기 때문에 하나의 함수로 작성했고, 대각선 두 개도 같은 이유로 하나의 함수로 작성했다.
#include <iostream>
#include <ios>
#include <algorithm>
using namespace std;
int arr[100][100], maxSum;
int getResult();
void getRowColSum();
void getDiagonalSum();
int main() {
cin.tie(0); ios::sync_with_stdio(0);
for (int tc = 1; tc <= 10; tc++) {
int T;
cin >> T;
maxSum = -2e9;
for (int y = 0; y < 100; y++) {
for (int x = 0; x < 100; x++) {
cin >> arr[y][x];
}
}
cout << '#' << tc << ' ' << getResult() << "\n";
}
return 0;
}
int getResult() {
getRowColSum();
getDiagonalSum();
return maxSum;
}
void getRowColSum() {
for (int y = 0; y < 100; y++) {
int sum1 = 0, sum2 = 0;
for (int x = 0; x < 100; x++) {
sum1 += arr[y][x];
sum2 += arr[x][y];
}
int tempMax = max(sum1, sum2);
maxSum = max(maxSum, tempMax);
}
}
void getDiagonalSum() {
int sum1 = 0, sum2 = 0;
for (int i = 0; i < 100; i++) {
sum1 += arr[i][i];
sum2 += arr[i][99 - i];
}
int tempMax = max(sum1, sum2);
maxSum = max(maxSum, tempMax);
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] 1211. [S/W 문제해결 기본] 2일차 - Ladder2 (0) | 2019.05.01 |
---|---|
[SWEA] 1210. [S/W 문제해결 기본] 2일차 - Ladder1 (0) | 2019.04.30 |
SW 문제해결 기본 - Array 2 (0) | 2019.04.29 |
[SWEA] 1208. [S/W 문제해결 기본] 1일차 - Flatten (0) | 2019.04.27 |
[SWEA] 1206. [S/W 문제해결 기본] 1일차 - View (0) | 2019.04.27 |
댓글