Skip to content

Commit 1b1288e

Browse files
add forming magic square - medium
1 parent 9570958 commit 1b1288e

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package hackerRank.problem_solving.medium
2+
3+
import java.util.*
4+
import kotlin.math.abs
5+
6+
val perfectSquares = arrayOf(
7+
arrayOf(8, 1, 6, 3, 5, 7, 4, 9, 2),
8+
arrayOf(6, 1, 8, 7, 5, 3, 2, 9, 4),
9+
arrayOf(4, 9, 2, 3, 5, 7, 8, 1, 6),
10+
arrayOf(2, 9, 4, 7, 5, 3, 6, 1, 8),
11+
arrayOf(8, 3, 4, 1, 5, 9, 6, 7, 2),
12+
arrayOf(4, 3, 8, 9, 5, 1, 2, 7, 6),
13+
arrayOf(6, 7, 2, 1, 5, 9, 8, 3, 4),
14+
arrayOf(2, 7, 6, 9, 5, 1, 4, 3, 8)
15+
)
16+
17+
fun formingMagicSquare(s: Array<Array<Int>>): Int {
18+
val imperfect = s.flatten()
19+
return perfectSquares
20+
.map { perfect ->
21+
perfect
22+
.zip(imperfect)
23+
.map { abs(it.first - it.second) }
24+
.sum()
25+
}.min() ?: -1
26+
}
27+
28+
fun main() {
29+
val scan = Scanner(System.`in`)
30+
val s = Array(3) { Array(3) { 0 } }
31+
for (i in 0 until 3) {
32+
s[i] = scan.nextLine().split(" ").map { it.trim().toInt() }.toTypedArray()
33+
}
34+
val result = formingMagicSquare(s)
35+
println(result)
36+
}

0 commit comments

Comments
 (0)