이번 문제를 해결할때 행렬을 한지 오래되서 시간이 많이 소요됬다 ;;
하지만 arr1.size 가 행의 갯수로 반환되고
arr[i].size가 열의 갯수로 반환된다는 사실이 예전에 백준 코테 풀때 기억나서
그부분을 적용해보았다.
그래서 먼저,
val rows = arr1.size 를 rows라는 변수에 저장하고
val columns = arr1[0].size를 columns 변수에 저장했다.
그 후 문제에서 초기화되어있는 answer변수에 저장하기 위해
val answer = Array(rows){IntArray(columns)}
이런식으로 rows 변수로 지정된 행 수와 columns 변수로 지정된 열수를 사용하여
answer 라는 2D 배열을 생성했다.
이 2D 배열의 각 요소는 지정된 수의 열을 가진 정수 배열로 초기화된다.
그 후 for문을 이용해서 각 요소들을 answer 행렬에 저장한다.
푸는데 시간이 오래걸려서 다른사람들은 어떻게 해결했는지 확인했다.
그중 이 코드가 눈에 들어왔다.
class Solution {
fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
return Array(arr1.size) {
row ->
IntArray(arr1[0].size) {
col ->
arr1[row][col] + arr2[row][col]
}
}
}
}
굉장히 간결하지만 나에겐 이해하는데 시간이 걸려서 먼저 위에 방식을 머리속에 담아놔야겠다.
'TIL > kotlin 알고리즘' 카테고리의 다른 글
kotlin 프로그래머스 lv1 3진법 뒤집기 (1) | 2024.01.30 |
---|---|
kotlin 프로그래머스 lv1 직사각형 별찍기 (1) | 2024.01.30 |
kotlin 프로그래머스 lv1 약수의 개수와 덧셈 (0) | 2024.01.27 |
kotlin 프로그래머스 lv1 수박수박수박수박수박수? (1) | 2024.01.26 |
kotlin 프로그래머스 lv1 제일 작은 수 제거하기 (0) | 2024.01.26 |