728x90
https://www.hackerrank.com/challenges/2d-array/problem
Data Structures > Arrays
2차원 배열이 주어지면 배열 속 숫자의 최댓값의 합을 리턴한다.
코드
int hourglassSum(int arr_rows, int arr_columns, int** arr) {
int max = -63, sum;
for(int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
sum = 0;
for(int k = i; k <= i + 2; k++){
for(int l = j; l <= j + 2; l++){
sum += arr[k][l];
}
}
sum -= (arr[i+1][j] + arr[i+1][j+2]);
if(sum > max) max = sum;
}
}
return max;
}
설명
max는 가능한 최소의 값인 -63으로 지정하고, 숫자들의 합을 저장할 sum을 선언한다.
이중 for 루프를 이용해 배열의 각 숫자의 합을 sum에 더한다.
max와 비교하고, max보다 sum이 크면 max의 값을 업데이트한다.
모든 과정이 끝나면 max를 리턴한다.
728x90
'C & C++ > HackerRank' 카테고리의 다른 글
[HackerRank] Staircase (0) | 2021.08.29 |
---|---|
[HackerRank] Quicksort 1 - Partition (0) | 2021.08.29 |
[HackerRank] Print in Reverse (0) | 2021.08.29 |
[HackerRank] Tree: Level Order Traversal (0) | 2021.08.13 |
[HackerRank] Find Digits (0) | 2021.08.13 |