티스토리 뷰
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
내 답안
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
var result: [[Int]] = []
for i in 0..<arr1.count {
var r: [Int] = []
for j in 0..<arr1[i].count {
r.append(arr1[i][j] + arr2[i][j])
}
result.append(r)
}
return result
}
접근 방법
- 첫 번째 반복문은 행을 순회하고, 두 번째 반복문은 열을 순회
다른 풀이
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
return zip(arr1, arr2).map{zip($0,$1).map{$0+$1}}
}
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
var answer: [[Int]] = arr1
for i in 0...arr1.count-1 {
for j in 0...arr1[i].count-1 {
answer[i][j] += arr2[i][j]
}
}
return answer
}
func solution(_ arr1: [[Int]], _ arr2: [[Int]]) -> [[Int]] {
var result = [[Int]](repeating: [Int](repeating: 0, count: arr1[0].count), count: arr1.count)
for i in 0..<arr1.count {
for j in 0..<arr1[i].count {
result[i][j] = arr1[i][j] + arr2[i][j]
}
}
return result
}
알게 된 것
- 배열의 초기화 : [Int](repeating: 반복되는 값, count: 배열의 전체 길이)
- zip(arr1, arr2) : 배열을 쌍으로 묶음
'코딩테스트' 카테고리의 다른 글
10월 20일 - 음양 더하기 swift (0) | 2023.10.20 |
---|---|
10월 19일 - 가장 가까운 같은 글자 swift (0) | 2023.10.19 |
10월 19일 - 서울에서 김서방 찾기 swift (0) | 2023.10.19 |
10월 18일 - 콜라츠 추측 swift (0) | 2023.10.19 |
swift Lv.1 문자열 내 마음대로 정렬하기 (0) | 2023.10.19 |
최근에 올라온 글