HackerRank/Algorithms
[HackerRank] Warmup > Diagonal Difference
ruming
2021. 8. 14. 04:30
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는 두번째 인덱스는 끝에서 하나씩 줄고 첫번째 인덱스는 늘어나는 원소를 더하면 된다.
큰 수에서 작은 수를 빼고 그 값을 반환한다.