Diagonal Difference (easy)
link -
https://www.hackerrank.com/challenges/diagonal-difference/problem?h_r=profile
Diagonal Difference | HackerRank
Calculate the absolute difference of sums across the two diagonals of a square matrix.
www.hackerrank.com
1. 문제 파악하기
- 입력: 정사각형 길이 n, 정사각형 해당하는 이차원 배열
3
11 2 4
4 5 6
10 8 -12
- 대각선 2개에 위치한 값의 합을 각각 더하고, 각 합의 차에 대한 절대값을 구한다
2. 아이디어
- 각 대각선을 더하는 index를 구해보면
0~n 까지 for문을 돌며
- \ 방향에 대한 인덱스 규칙 : arr[ i ][ i ]
- / 방향에 대한 인덱스 규칙 : arr[ i ][ n - i - 1 ]
3. 풀이
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | fun diagonalDifference(n: Int, arr: Array<Array<Int>>): Int { var a = 0 var b = 0 for(i in 0 until n) { a += arr[i][i] b += arr[i][n-i-1] } return Math.abs(a-b) } fun main(args: Array<String>) { val n = readLine()!!.trim().toInt() val arr = Array<Array<Int>>(n, { Array<Int>(n, { 0 }) }) for (i in 0 until n) { arr[i] = readLine()!!.trimEnd().split(" ").map{ it.toInt() }.toTypedArray() } val result = diagonalDifference(n, arr) println(result) } | cs |
'HackerRank' 카테고리의 다른 글
[HackerRank] Staircase - Kotlin (0) | 2021.07.08 |
---|---|
[HackerRank] Plus Minus - Kotlin (0) | 2021.07.05 |
[HackerRank] Compare the Triplets - Kotlin (0) | 2021.07.02 |
[HackerRank] Simple Array Sum - Kotlin (0) | 2021.07.02 |
Hacker Rank 시작하기 (0) | 2021.07.02 |