Kotlin
Kotlin 공부 - 예제, 연습 - #5 거꾸로 반환하기
자다르
2022. 4. 15. 23:49
※ 인프런 강의: 개복치개발자님의 [입문편] 안드로이드를 위한 코틀린(Kotlin) 문법 강의 내 예제이며, solution #1은 제가 작성한 코드이고, soultion-#2는 강의 예제에서 제시한 코드입니다.
- 거꾸로 반환하기 soluton - #1
// 리스트의 숫자를 뒤집어서 반환하는 solution 을 만드세요
fun main(){
val arr1 = arrayListOf(1,2,3,4,5)
val result1 = solution(arr1)
println(result1)
// [5,4,3,2,1]
val arr2 = arrayListOf(2,4,6,8)
val result2 = solution(arr2)
println(result2)
// [8,6,4,2]
}
fun solution(arr: ArrayList<Int>) :ArrayList <String> {
val returnList = ArrayList<String>()
var num : Int
// 마지막 index를 구하기 위해 List 값 총 갯수에서 -1
var last_array_index : Int = arr.size-1
//initilization - 이후 값을 넣기 위해 list의 크기만큼 각 요소들을 초기화
for(i in 0..last_array_index){
returnList.add("")
}
/* initialization을 위해 아래 방법 사용할 경우 에러 노출
for(i in 0..last_array_index){
returnList[i] = ""
}
Error:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
at jdk.internal.util.Preconditions.outOfBounds (:-1)
at jdk.internal.util.Preconditions.outOfBoundsCheckIndex (:-1)
at jdk.internal.util.Preconditions.checkIndex (:-1)
*/
for(i in 0 .. last_array_index){
// 기존 List 각 값들을 거꾸로 넣기위해 |List index번호-마지막 index번호|를 통해 바꿔 들어갈 index를 구해 해당 index에 저장한다
// e.g.) index 0의 값 -> index 4의 값으로
num = Math.abs(i-last_array_index)
returnList[num] = arr[i].toString()
}
return returnList
}
결과
=====================
[5, 4, 3, 2, 1]
[8, 6, 4, 2]
- 거꾸로 반환하기 soluton - #2
// 리스트의 숫자를 뒤집어서 반환하는 solution 을 만드세요
fun main(){
val arr1 = arrayListOf(1,2,3,4,5)
val result1 = solution(arr1)
println(result1)
// [5,4,3,2,1]
val arr2 = arrayListOf(2,4,6,8)
val result2 = solution(arr2)
println(result2)
// [8,6,4,2]
}
fun solution(arr: ArrayList<Int>) : ArrayList <String> {
val length = arr.size
//println(length)
val resultArr = mutableListOf<String>()
for (i in 0..length-1){ // length-1 = 4 -> 0 1 2 3 4 -> arr[0] arr[1] arr[2] arr[3] arr[4]
// println(arr[length-1-i])
// length-1 = 4
// 4-0 = 4 arr[4]
// 4-1 = 3 arr[3]
// 4-2 = 2 arr[2]
// 4-3 = 1 arr[1]
// 4-4 = 0 arr[0]
resultArr.add(arr[length-1-i].toString())
}
// println(resultArr)
return resultArr as ArrayList<String>
}
출력
=========================
[5, 4, 3, 2, 1]
[8, 6, 4, 2]