181031_(水) - PassionOfStudy/Algorithm GitHub Wiki

Programmers_(Add Matrixes)

행렬의 덧셈 Add Matrixes

My Solution

각각의 2차원 행렬의 요소에 접근하여 덧셈을 해 결괏값을 저장할 크기가 같은 2차원 행렬 result를 만듦과 동시에 초기화하였다. 그리고 각각의 요소에 접근하여 덧셈을 해야하므로 2중 Loop를 이용했다. Loop는 for in문을 이용해서 각각의 인덱스에 접근하였다. Logic은 result[i][j] = arr1[i][j] + arr2[i][j]이고 시간복잡도는 O(n*n)이다. 2중 루프말고는 다른 방법이 떠오르지 않았다.

Other Solution

다른 솔루션들을 보니 대부분 나와 같이 2중 Loop를 이용했다. 각기 구현하면서 코드가 조금씩 다를 뿐 Logic은 같았다. ex) 따로 결괏값 배열의 구조를 만들필요없이 arr1[i][j] += arr2[i][j]하여 return arr1을 한 것과 빈배열에 각각의 차수에 append()메서드를 이용해서 추가한 것 이 전부였다.

Best는 zip()과 map을 이용한 solution이었다.

func solution(_ arr1:[Int](/PassionOfStudy/Algorithm/wiki/Int), _ arr2:[Int](/PassionOfStudy/Algorithm/wiki/Int)) -> [Int](/PassionOfStudy/Algorithm/wiki/Int) {
    return zip(arr1, arr2).map{zip($0,$1).map{$0+$1}}
}