행렬의 덧셈 (Lv1. Swift)
Updated:
행렬의 덧셈 (Lv1. Swift)
🔍 문제
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
🔶 제한사항
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
🔹 입출력 예
📌 풀이
행렬의 같은 위치의 숫자들 끼리 더하면 되는 문제이다.
2중 반복문을 사용해서 해결했다.
- 행렬의 행만큼 반복문을 돌린다. (arr1.count)
-> 이때 각 행을 빈값으로 초기화 해준다 (result.append([])) « 이 부분을 놓쳐서, 살짝 헤매었다.
-
그 반복문 속에서 해당 행의 열만큼 또 반복문을 돌린다 (arr1[i].count)
-
arr1과 arr2의 같은 행, 같은 열끼리 더해준다 (result[i].append(arr1[i][j] + arr2[i][j]))
// 2중 for 문으로 풀이
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
var result: [[Int]] = []
for i in 0..<arr1.count {
result.append([])
for j in 0..<arr1[i].count {
result[i].append(arr1[i][j] + arr2[i][j])
}
}
return result
}
print(solution([[1, 2], [2, 3]], [[3, 4], [5, 6]])) // [[4, 6], [7, 9]]
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
return zip(arr1, arr2).map { zip($0, $1).map { $0 + $1}}
}
print(solution([[1, 2], [2, 3]], [[3, 4], [5, 6]])) // [[4, 6], [7, 9]]
Reference
프로그래머스 - https://programmers.co.kr/learn/courses/30/lessons/12950
Leave a comment