TIL/kotlin 알고리즘

kotlin 프로그래머스lv1 행렬의 덧셈

crablo 2024. 1. 30. 14:35
728x90

 

이번 문제를 해결할때 행렬을 한지 오래되서 시간이 많이 소요됬다 ;;

하지만 arr1.size 가 행의 갯수로 반환되고

arr[i].size가 열의 갯수로 반환된다는 사실이 예전에 백준 코테 풀때 기억나서

그부분을 적용해보았다.

그래서 먼저,

val rows = arr1.size 를 rows라는 변수에 저장하고

val columns = arr1[0].size를 columns 변수에 저장했다.

그 후 문제에서 초기화되어있는 answer변수에 저장하기 위해

val answer = Array(rows){IntArray(columns)}

이런식으로 rows 변수로 지정된 행 수와 columns 변수로 지정된 열수를 사용하여

answer 라는 2D 배열을 생성했다.

이 2D 배열의 각 요소는 지정된 수의 열을 가진 정수 배열로 초기화된다.

그 후 for문을 이용해서 각 요소들을 answer 행렬에 저장한다.

푸는데 시간이 오래걸려서 다른사람들은 어떻게 해결했는지 확인했다.

그중 이 코드가 눈에 들어왔다.


class Solution {
    fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
        return Array(arr1.size) {
            row ->
            IntArray(arr1[0].size) {
                col ->
                arr1[row][col] + arr2[row][col]
            }
        }
    }
}

굉장히 간결하지만 나에겐 이해하는데 시간이 걸려서 먼저 위에 방식을 머리속에 담아놔야겠다.

728x90