DINGA DINGA
article thumbnail
728x90

https://www.hackerrank.com/challenges/diagonal-difference/problem

 

Diagonal Difference | HackerRank

Calculate the absolute difference of sums across the two diagonals of a square matrix.

www.hackerrank.com

Algorithms > Warmup

 

2차원 배열이 주어지면 왼쪽 대각선과 오른쪽 대각선의 합을 각각 구해서 그 차의 절댓값을 리턴한다.

 

 

코드

int diagonalDifference(int arr_rows, int arr_columns, int** arr) {
    int left = 0, right = 0;
    for (int i = 0, j = arr_columns - 1; i < arr_rows; i++, j--){
        left += arr[i][i];
        right += arr[i][j];
    }
    return left > right ? left - right : right - left;
}

 

설명

왼쪽 대각선 숫자의 합, 오른쪽 대각선 숫자의 합을 저장할 변수 left와 right를 각각 선언한다.

for문을 이용해 left와 right 합을 구한다.

left는 배열의 행과 열을 동일하게 하고, right는 행과 열을 반대로 해서 카운트한다.

각 대각선의 합이 구해지면 left와 right의 크기를 비교하여 큰 값에서 작은 값을 빼 리턴한다.

 

728x90

'C & C++ > HackerRank' 카테고리의 다른 글

[HackerRank] Birthday Cake Candles  (1) 2021.10.09
[HackerRank] Counting Sort 2  (0) 2021.10.09
[HackerRank] Binary Search Tree : Insertion  (0) 2021.10.02
[HackerRank] Bill Division  (1) 2021.09.25
[HackerRank] Counting Sort 1  (0) 2021.09.25