NxN크기의 배열이 입력되면 대각선 방향으로 원소들을 더한다. 두 값의 차를 맞추는 문제다.
코드
int diagonalDifference(int arr_rows, int arr_columns, int** arr) {
int i, l_di=0, r_di=0, result=0;
for(i=0; i<arr_rows; i++){
l_di += arr[i][i];
}
for(i=0; i<arr_rows; i++){
r_di += arr[i][arr_rows-1-i];
}
if(l_di > r_di) result = l_di - r_di;
else result = r_di - l_di;
return result;
}
왼쪽에서 오른쪽 대각선으로 더한 수 = l_di
오른쪽에서 왼쪽 대각선으로 더한 수 = r_di
l_di는 그냥 arr의 인덱스가 하나씩 늘어나는 원소를 더하면 된다.
r_di는 두번째 인덱스는 끝에서 하나씩 줄고 첫번째 인덱스는 늘어나는 원소를 더하면 된다.
큰 수에서 작은 수를 빼고 그 값을 반환한다.
'HackerRank > Algorithms' 카테고리의 다른 글
[HackerRank] Strings > Pangrams (0) | 2021.08.26 |
---|---|
[HackerRank] Search > Ice Cream Parlor (0) | 2021.08.26 |
[HackerRank] Warmup > Compare the Tripets (0) | 2021.08.14 |
[HackerRank] Implementation > Find Digits (0) | 2021.08.08 |
[HackerRank] Implementation > Drawing Book (0) | 2021.08.08 |