자유를 위해

해커랭크/알고리즘

Diagonal Difference

Yoo Nee Verse 2019. 12. 6. 11:04
반응형

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

 

Given a square matrix, calculate the absolute difference between the sums of its diagonals.

For example, the square matrix  is shown below:

1 2 3 4 5 6 9 8 9

The left-to-right diagonal = . The right to left diagonal = . Their absolute difference is .

Function description

Complete the  function in the editor below. It must return an integer representing the absolute diagonal difference.

diagonalDifference takes the following parameter:

  • arr: an array of integers .

Input Format

The first line contains a single integer, , the number of rows and columns in the matrix .
Each of the next  lines describes a row, , and consists of  space-separated integers .

Constraints

  • -100 <= arr[i][j] <= 100

Output Format

Print the absolute difference between the sums of the matrix's two diagonals as a single integer.

Sample Input

3

11 2 4

4 5 6

10 8 -12

Sample Output

15

Explanation

The primary diagonal is:

11 + 5 + (-12)

Sum across the primary diagonal: 11 + 5 - 12 = 4

The secondary diagonal is:

4 + 5 + 10

Sum across the secondary diagonal: 4 + 5 + 10 = 19
Difference: |4 - 19| = 15

Note: |x| is the absolute value of x

 

=====내 답

func diagonalDifference(arr [][]int32) int32 {
	// Write your code here
	a := int32(0)
	b := int32(0)
	lens := len(arr)
	for i :=0 ; i < lens ; i++{
		a += arr[i][i]
		b += arr[i][lens - i -1]
	}

	if a - b < 0 {
		return -(a-b)
	}else{
		return a-b
	}
}

 

반응형

'해커랭크 > 알고리즘' 카테고리의 다른 글

선택 정렬 - Golang  (0) 2019.12.03