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}}
}