N

(SWEA c++)2805. 농작물 수확하기 본문

SW Expert Academy

(SWEA c++)2805. 농작물 수확하기

naeunchan 2020. 10. 21. 09:32
728x90
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GLXqKAWYDFAXB&categoryId=AV7GLXqKAWYDFAXB&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

마름모 형태의 농작물을 더하면 된다.

for문을 이용해 두 부분으로 나눠서 값을 더해줬다.

 

우선 mid를 이용하여 배열의 중앙 부분을 계속해서 더한다.

그리고 중앙을 기준으로 왼쪽, 오른쪽 부분을 더해준다.

1 ~ mid 인 부분과 mid + 1 ~ n - 1 부분으로 나눠서 왼쪽, 오른쪽을 더하면 된다.

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main(void)
{
    int t;
    cin >> t;
    
    for(int i = 1; i <= t; i++)
    {
        int n, mid, ans = 0;
        string s;
        vector<string> v;
        
        cin >> n;
        mid = n / 2;
        
        for(int j = 0; j < n; j++)
        {
            cin >> s;
            v.push_back(s);
        }
        
        for(int j = 0; j < n; j++)
        {
            ans +=v[j][mid] - '0';
            
            if(j > 0 && j <= mid)
            {
            	for(int k = 1; k <= j; k++)
                {
                    ans += v[j][mid - k] - '0';
                    ans += v[j][mid + k] - '0';
                }   
            }
            else if(j > mid && j < n - 1)
            {
                for(int k = 1; k < n - j; k++)
                {
                    ans += v[j][mid - k] - '0';
                    ans += v[j][mid + k] - '0';
                }
            }
        }
        
        cout << "#" << i << " " << ans << endl;
    }
    return 0;
}
728x90
반응형

'SW Expert Academy' 카테고리의 다른 글

(SWEA c++)2817. 부분 수열의 합  (0) 2020.10.21
(SWEA c++)2814. 최장경로  (0) 2020.10.21
(SWEA c++)2806. N-Queen  (0) 2020.10.20
(SWEA c++)1873. 상호의 배틀필드  (0) 2020.10.20
(SWEA c++)1860. 진기의 최고급 붕어빵  (0) 2020.10.20