입출력 예를 보면 그냥 같은 인덱스의 값끼리 더해서 나오는게 아니라 배열 안의 배열 안의 요소들이 각각 더해져야 한다.
배열의 배열 -> 2차원 배열
val numbers = Array(3, {IntArray(4 ,{0})}) // 3행 4열
// [[0, 0, 0, 0],[0, 0, 0, 0], [0, 0, 0, 0]]
평소 다른 배열의 같은 인덱스끼리 더하는 for 문으로 했더니 결괏값이 [[4,6],[7,9]]가 아닌 [[1,2,3,4],[2,3,5,6]] 으로 나와버린다. 테스트 케이스 각각의 크기가 다른데 어떻게 더하지?
2차원 배열 예시 (https://www.youtube.com/watch?v=0Qncbm_f-Zc)
val numbers2dZero = Array(3, {IntArray(4, {0})})
for ( (i, row) in numbers2dZerod.withIndex() ) {
for ( (j, column) in row.withIndex() ) {
println("[$i, $j] => $column" // 열
}
println()
}
}
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
[0,0] => 0 [0,1] => 0 [0,2] => 0 [0,3] => 0
[1,0] => 0 [1,2] => 0 [1,2] => 0 [1,3] => 0
[2,0] => 0 [2,1] => 0 [2,2] => 0 [2,3] => 0
다른 사람 풀이 1
class Solution {
fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
var answer = Array(arr1.size){IntArray(arr1[0].size)}
for(i in arr1.indices) {
for(j in 0 .. arr2[0].size -1) {
answer[i][j] += (arr1[i][j] + arr2[i][j])
}
}
return answer
}
}
indices
: 컬렉션 타입의 인덱스값
다른 사람 풀이 2
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]
}
}
}
}
row 와 col 은 각각 0 .. arr1.size -1 와 0 .. arr1[0].size -1 의 범위를 순회한다.
어렵다 어려워 😰
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]
}
}
}
}
람다함수로 배열의 각 요소를 초기화하고 있다.
row 와 col 은 각각 행과 열의 인덱스이다.
arr1.size 가 2.
Array 의 요소가 어떤 값들이냐 -> row 가 나타냄
IntArray의 요소가 어떤 값들이냐 -> col 이 나타냄
Array 의 0번째 값은 arr1[0][col] + arr2[0][col] 이고
col 은 arr1[0].size 를 순회하고 있다.
arr[0].size 가 2
그러므로
Array의 0번째 값은 arr1[0][0] + arr2[0][0] , arr1[0][1] + arr2[0][1]
Array의 1번째 값은 arr1[1][0] + arr2[1][0] , arr1[1][1] + arr2[1][1]
람다람다 헷갈린다.
'코딩테스트' 카테고리의 다른 글
프로그래머스 | 3진법 뒤집기 | Kotlin (0) | 2024.01.19 |
---|---|
프로그래머스 | 이상한 문자 만들기 | Kotlin | 다시풀기 (0) | 2024.01.18 |
프로그래머스 | 직사각형 별찍기 | Kotlin (1) | 2024.01.11 |
프로그래머스 | 문자열 다루기 기본 | Kotlin (0) | 2024.01.09 |
프로그래머스 | 부족한 금액 계산하기 | Kotlin (1) | 2024.01.06 |