행렬의 덧셈 (Lv1. Swift)

Updated:

행렬의 덧셈 (Lv1. Swift)

🔍 문제

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

🔶 제한사항

  • 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.

🔹 입출력 예

image


📌 풀이

행렬의 같은 위치의 숫자들 끼리 더하면 되는 문제이다.

2중 반복문을 사용해서 해결했다.

  1. 행렬의 행만큼 반복문을 돌린다. (arr1.count)

-> 이때 각 행을 빈값으로 초기화 해준다 (result.append([])) « 이 부분을 놓쳐서, 살짝 헤매었다.

  1. 그 반복문 속에서 해당 행의 열만큼 또 반복문을 돌린다 (arr1[i].count)

  2. 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

Categories:

Updated:

Leave a comment