행렬의 덧셈
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
arr1 | arr2 | return |
---|---|---|
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4],[6]] |
class Solution {
fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
val result = arr1.mapIndexed{ index, arr ->
arr.mapIndexed{ index2, obj ->
obj + arr2[index][index2]
}.toIntArray()
}.toTypedArray()
return result
}
}
필자는 자바스크립트를 먼저 접했기에 Type 지정하는 Array에서 헤메었다.
let arr = []
이와같이 타입을 지정하지 않기때문에...
mapIndexed
함수를 사용 해야했으며,
두개의 mapIndexed
함수를 활용하여 각각 더해준다음 반환시킨다
생각보다 너무 힘들게 푼 문제여서 다시 한번 풀이를 해보았다.
차근차근 console로 확인해보고 디버깅해보니 문제 해결 완료!!! 😊
/**
* You can edit, run, and share this code.
* play.kotlinlang.org
*/
fun main() {
val array1 =
arrayOf(
arrayOf(1,2),
arrayOf(2,3),
)
val array2 =
arrayOf(
arrayOf(3,4),
arrayOf(5,6),
)
var result = array1.mapIndexed { index, arr ->
arr.mapIndexed { index2, value ->
value + array2[index][index2]
}.toIntArray()
}.toTypedArray()
result.mapIndexed { i, it ->
println(it[0])
println(it[1])
}
}
4
6
7
9