[SW Expert] #2805 농작물 수확하기 :: 잡다한 프로그래밍
반응형

https://swexpertacademy.com/main/main.do

불러오는 중입니다...

1. 해결방법

먼저 N개를 2로 나눈 N/2의 몫을 P라 할 때 P가 처음 시작점이 될 것 이라고 생각했고, 첫번째 행부터 P번째 행까지는 -1, +1열까지 N부터 P번째 행까지는 +1 해가는 방식으로 2가지의 개수를 합치고 더해서 총 개수를 구하는 방식을 이용했다.


2. 코드

#include <iostream>

using namespace std;
int total;
int num;
int ary[49][49];
int sum = 0;
void check() {
	int center = num / 2;
	sum = 0;
	for (int i = 0; i < center; i++) {
		for (int j = center-i; j <= center+i; j++) {
			sum += ary[i][j];
		}
        for(int k = center - i; k <= center + i; k++){
            sum += ary[num-1-i][k];
        }
	}
            for(int m = 0; m<num; m++){
         	sum += ary[center][m];   
        }
}
int main()
{
    int temp = 0;
	cin >> total;
	for (int i = 0; i < total; i++) {
		cin >> num;
		for (int j = 0; j < num; j++) {
			for (int k = 0; k < num; k++) {
				scanf("%1d", &ary[j][k]);
			}
		}
		check();
		cout << "#" << i + 1 << " " << sum << endl;
	}
}

 

반응형

+ Recent posts