문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
문제 접근
1.arr1, arr2의 [0][0] ~ [i][j] 까지 반복(행의개수는 2차원 배열 arr1의 1차원 배열의 개수 => arr1.size 열의개수는 arr1의 1차원배열의 요소의 개수 arr1[0].size) 이 문제에서는 행과 열의 크기가 같기떄문에 arr1.size로 통일 가능
2.arr1과 arr2모두 동시에 같은 index에 값을 더해서 answer 배열에 추가하면 된다.
배워갈 점
1.var answer = Array(arr1.size) { IntArray(arr1[0].size) }
요소가 모두 0인, 2차원배열을 선언
- Array(arr1.size):
- Array는 Kotlin에서 배열을 생성하는 함수입니다.
- arr1.size는 배열 arr1의 행의 개수입니다. 따라서 Array(arr1.size)는 arr1.size만큼의 길이를 가진 1차원 배열을 생성합니다.
- 이 경우, answer는 arr1.size의 길이를 가진 배열을 생성합니다.
- { IntArray(arr1[0].size) }:
- {} 내부에 있는 코드는 각 요소를 초기화하는 람다(lambda) 표현식입니다.
- IntArray(arr1[0].size)는 각 요소를 arr1[0].size만큼의 길이를 가진 IntArray로 초기화합니다.
- arr1[0].size는 배열 arr1의 첫 번째 행(1차원 배열)의 요소의 개수입니다. 따라서 IntArray(arr1[0].size)는 각 요소를 arr1[0].size만큼의 길이를 가진 IntArray로 초기화합니다.
- 이렇게 하면 answer 배열의 각 요소가 arr1[0].size만큼의 길이를 가진 IntArray로 초기화되어 생성됩니다.
코드
class Solution {
fun solution(arr1: Array, arr2: Array): Array {
var answer = Array(arr1.size){ IntArray(arr1[0].size)}
for (i in 0 until arr1.size){
for (j in 0 until arr1[i].size){
answer[i][j] += arr1[i][j]+arr2[i][j]
}
}
return answer
}
}
'Coding Test' 카테고리의 다른 글
[Python] 백준 30802 웰컴키트 (0) | 2024.11.11 |
---|---|
백준 1966. 프린터 큐 (1) | 2024.06.14 |
Programmers. 주차 요금 계산 (2) | 2024.06.11 |
백준. 3107번 IPv6 (1) | 2024.06.11 |
Programmers. 튜플 lv2 (0) | 2024.06.08 |