반응형
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4],[6]] |
이번문제는 2차 for문을 이용해서 문제를 풀어야겠다 라는 생각까진 했지만 뜻대로 되지않아 못풀었다.
arr1.forEachIndexed { index, value ->
arr2.forEachIndexed { index2, value2 ->
}
}
다른분의 풀이. Array() 를 사용하여 문제를 풀으셨다.
return Array<IntArray>(arr1.size){ i ->
IntArray(arr1[0].size){ j -> arr1[i][j] + arr2[i][j] }
}
이번에 배운 것 중 하나는 arrayOf() 와 Array() 의 차이이다.
arrayOf() 는 선언과 동시에 원소값을 지정할 수 있지만 Array()는 선언과 동시에 원소값을 지정할 수 없다.
Array()는 또한 람다식을 사용하여 원소값을 넣어 줄 수 있다는 특징이 있다.
//선언과 동시에 원소값을 지정할 수 있다.
val arrayOf = arrayOf("1", "2", "3", 1, 2, 3)
val arrayOf2 = arrayOf<String>("1", "2", "3")
val arrayOf3 = arrayOfNulls<String>(3) // 사이즈만큼 null 배열 선언 , 자료형 타입이나 사이즈가 빠지면 안됨 .
//Array 는 기본적으로 자료형과 사이즈를 선언해 줘야됨.
val array = Array<String>(3) { "ex" }
val array2 = Array<String>(3) { i -> "ex$i" } // 람다식으로 사용이 가능함
val array3 = emptyArray<String>() //사이즈가 0인 비어있는 배열 선언
이것을 이용하여 다른 분들이 문제를 푼 것 같다.
이번 문제를 풀면서 contentToString() 을 알았는데 array의 원소값들을 보기 좋은 메소드인 것 같다/
array.contentToString()
반응형
'알고리즘' 카테고리의 다른 글
[코딩테스트] Level. 1 내적 Kotlin (0) | 2023.03.28 |
---|---|
[코딩 테스트] Level. 1 크레인 인형뽑기 게임 (Kotlin) (0) | 2023.03.21 |
[코딩테스트] Level. 1 핸드폰 번호 가리기 Kotlin (0) | 2023.02.18 |
[코딩테스트] Level. 1 콜라츠 추측 Kotlin (0) | 2023.02.15 |
[코딩테스트] Level. 1 평균 구하기 Kotlin. (0) | 2023.02.15 |