#12950
🎄 Question ?
https://school.programmers.co.kr/learn/courses/30/lessons/12950
class Solution {
fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
var answer = arrayOf<IntArray>()
return answer
}
}
🧩 Thought Process
- arr1과 arr2의 배열 크기가 무조건 같아야하기 때문에 arr1과 arr2의 공통 배열 크기를 row에 저장하기
- arr1의 첫번째 엘리먼트 배열의 크기를 column에 저장하기
- array는 immutable(수정 불가)하므로 리스트로 바꾸어줘야하기 때문에 텅빈 리스트 만들기. 이때 List 에 들어가는 엘리먼트는 IntArray 사용! 즉 mutableListOf<IntArray> 이용
- 배열 안에 있는 배열도 리스트로 바꾸어줘야하기 떄문에 listInside라는 리스트 만들기. 이 리스트에 들어가는 엘리먼트는 정수형이므로 mutableListOf<Int> 사용해주기.
- for 문을 사용해서 가장 바깥쪽 배열의 첫번째 엘리먼트부터 하나씩 값 가져오기
- for 문 한번더 사용해서 배열 안에 있는 배열의 엘리먼트를 각각 가져와서 arr1과 arr2의 값들을 더하기
- 그 값을 각각 listInside 리스트에 추가해주기
- 배열 안에 있는 배열의 엘리먼트를 모두 더했다면 listInside 리스트를 ListOfList의 첫번째 엘리먼트로 더해주기. 이때 리스트를 배열로 바꾸어주는 함수 이용해 줘야한다!
- 가장 바깥쪽 배열의 인덱스가 바뀔때 listInside 리스트를 초기화해주기 (이것도 for문 이용했는데 리스트를 비우는 함수가 있는지 찾아보기 !!!!!!!!!!) -> clear() 함수 사용해주면 됨!
class Solution {
fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
val row = arr1.size
val column = arr1[0].size
var listOfLists = mutableListOf<IntArray>()
var listInside = mutableListOf<Int>()
for (i in 0 until row) {
for (j in 0 until column) {
listInside.add(arr1[i][j] + arr2[i][j])
}
listOfLists.add(listInside.toIntArray())
for (k in 0 until column) {
listInside.remove(k)
}
}
return listOfLists.toIntArray()
}
}
에러 뜸..
아무래도 toIntArray의 엘리먼트는 array여야하는데 엘리먼트가 array여서 에러가 뜬거 같다. typedarray로 바꾸니 문제 해결되었다.
https://stackoverflow.com/questions/73107126/what-is-typed-array-in-kotlin
스택오버플로우에 typedarray에 대한 설명이랑 Intarray & array<INt>의 차이가 생긴 이유와 마지막으로는 어느 배열보단 리스트 사용을 추천한다고 나와있다.
에러는 전부 해결했는데 문제는 다 틀렸다.. 띠용
배열 안에 있는 배열의 크기가 일정하지 않은 경우도 존재하나보다. column 사이즈 찾는 코드를 for문 안에 넣어야겠다.
🎀 Answer
class Solution {
fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
val row = arr1.size
var listOfLists = mutableListOf<IntArray>()
var listInside = mutableListOf<Int>()
for (i in 0 until row) {
var column = arr1[i].size
for (j in 0 until column) {
listInside.add(arr1[i][j] + arr2[i][j])
}
listOfLists.add(listInside.toIntArray())
listInside.clear()
}
return listOfLists.toTypedArray()
}
}
해결 완!! >..<
🎁 Result
🏆 Comment
재밌다재밌어 :)
'Algorithm > Kotlin' 카테고리의 다른 글
[프로그래머스 • 코틀린] 최소직사각형 #86491 (1) | 2023.11.27 |
---|---|
[프로그래머스 • 코틀린] [유클린드 호제법]최대공약수와 최소공배수 #12940 (0) | 2023.11.20 |
[프로그래머스 • 코틀린] 직사각형 별찍기 #12969 (0) | 2023.11.18 |
[프로그래머스 • 코틀린] 문자열 다루기 기본 # 12918 (0) | 2023.11.07 |
[프로그래머스 • 코틀린] 부족한 금액 계산하기 #82612 (0) | 2023.11.06 |