배열의 마름모 모양에 해당하는 index의 값들의 합을 구해야하기 때문에 점점 넓어지는 윗 부분과 점점 좁아지는 밑 부분을 나눠서 index에 접근하였다.
농장의 크기/2가 중앙에 위치한 index이므로 i를 증가시키거나 감소시키면서 농장의 크기/2-i ~ 농장의 크기/2+i 에 해당하는 index의 값들을 더하면 된다.
#include <iostream>
#include <ios>
using namespace std;
int farmSize, farm[49][49];
int getResult();
int main() {
int T; cin >> T;
for (int tc = 1; tc <= T; tc++) {
cin >> farmSize;
for (int y = 0; y < farmSize; y++) {
for (int x = 0; x < farmSize; x++) {
scanf("%1d", &farm[y][x]);
}
}
cout << '#' << tc << ' ' << getResult() << "\n";
}
return 0;
}
int getResult() {
int result = 0;
for (int i = 0; i < farmSize / 2; i++) {
for (int j = farmSize / 2 - i; j <= farmSize / 2 + i; j++) {
result += farm[i][j];
}
}
for (int i = farmSize / 2; i >= 0; i--) {
for (int j = farmSize / 2 - i; j <= farmSize / 2 + i; j++) {
result += farm[farmSize - 1 - i][j];
}
}
return result;
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] 3142. 영준이와 신비한 뿔의 숲 (0) | 2019.05.06 |
---|---|
[SWEA] 7102. 준홍이의 카드놀이 (0) | 2019.05.06 |
[SWEA] 3456. 직사각형 길이 찾기 (0) | 2019.05.05 |
[SWEA] 4406. 모음이 보이지 않는 사람 (0) | 2019.05.03 |
[SWEA] 1211. [S/W 문제해결 기본] 2일차 - Ladder2 (0) | 2019.05.01 |
댓글