일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- MVVM
- 코딩테스트
- CS193p
- flutter #state # stateful #stateless
- 스위프트
- collectionView
- 알고리즘
- SwiftUI
- UserDefault
- ImageSlider
- xcode
- GIT
- 청년취업사관학교후기
- colorofdays
- 새싹후기
- flutter
- 스터디
- IOS
- stanford
- 조건문
- WidgetTree
- Masil
- 프로그래머스
- process
- 프로젝트회고
- 백준
- xml
- Swift
- UIKit
- 오늘의 색상
Archives
- Today
- Total
개발을 시작하는 이야기
[프로그래머스] 행렬의 덧셈 본문
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
예시
입력
arr1 arr2 return [[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]]
Solution.Swift
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
var array1 = [Int]()
var array2 = [[Int]]()
for i in 0..<arr1.count {
for j in 0..<arr1[i].count {
let sum = arr1[i][j] + arr2[i][j]
array1.append(sum)
}
array2.append(array1)
array1.removeAll()
}
return array2
}
- 배열 array1과 이중 배열 array2를 만들어준다.
- 이중 for문을 사용해서 첫 for문은 arr1의 배열의 개수만큼 반복하고
- 두 번째 for문은 arr1의 배열 안의 숫자 개수만큼 반복한다.
- 각각의 행과 열에 맞게 더해서 array1에 담아준다.
- 그리고서 array2에 array1을 담아준다.
- array1은 초기화를 시켜준다.
다른 사람 풀이
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
return zip(arr1, arr2).map{zip($0,$1).map{$0+$1}}
}
* zip을 사용해서 두 리스트를 찍지어 사용한다.
'개발 이야기 > Algorithm Study' 카테고리의 다른 글
[프로그래머스] 평균 구하기 (0) | 2022.04.23 |
---|---|
[프로그래머스] 하샤드 수 (0) | 2022.04.22 |
[프로그래머스] 핸드폰 번호 가리기 (0) | 2022.04.21 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (0) | 2022.04.19 |
[프로그래머스] 직사각형 별찍기 (0) | 2022.04.18 |