2017년 12월 4일 월요일

[C++] HackerRank Day11 Solution

/*
https://www.hackerrank.com/challenges/30-2d-arrays/problem

Mind negative numbers!!

I initialized 'max' as -99, but you can use another way that sorting arr_sum( and get the biggest number).


*/



#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
using namespace std;


int main(){
    vector< vector<int> > arr(6,vector<int>(6));
    for(int arr_i = 0;arr_i < 6;arr_i++){
       for(int arr_j = 0;arr_j < 6;arr_j++){
          cin >> arr[arr_i][arr_j];
       }
    }
 
 
    vector< vector<int> > arr_sum(4, vector<int>(4));
    int max = -99;                          //Do not initialize 'max' as 0. It would be wrong when the values are negative.
 
    for(int arr_i = 0;arr_i < 4;arr_i++){
        for(int arr_j = 0; arr_j < 4; arr_j++){
            arr_sum[arr_i][arr_j] = 0;
            arr_sum[arr_i][arr_j] += arr[arr_i][arr_j];
            arr_sum[arr_i][arr_j] += arr[arr_i][arr_j+1];
            arr_sum[arr_i][arr_j] += arr[arr_i][arr_j+2];         
            arr_sum[arr_i][arr_j] += arr[arr_i+1][arr_j+1];
            arr_sum[arr_i][arr_j] += arr[arr_i+2][arr_j];         
            arr_sum[arr_i][arr_j] += arr[arr_i+2][arr_j+1];
            arr_sum[arr_i][arr_j] += arr[arr_i+2][arr_j+2];
         
            if(max < arr_sum[arr_i][arr_j]){
                max = arr_sum[arr_i][arr_j];
            }                     
        }
    }
 
    cout << max;
 
    return 0;
}

댓글 없음:

댓글 쓰기