https://school.programmers.co.kr/learn/courses/30/lessons/120821
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이번에 풀어본 문제는 간단한 배열 뒤집기 문제이다.
fun main(){
var arr = arrayOf(0,1,2,3,4)
val arrIndex = arr.size -1
print("현재 배열의 값은:")
for(i in 0..arrIndex){
kotlin.io.print(" ${arr[i]}")
}
println("")
for(i in 0..arr.size /2){
var change = arr[i]
arr[i] = arr[arrIndex-i]
arr[arrIndex-i] = change
}
print("현재 배열의 값은:")
for(i in 0..arrIndex){
kotlin.io.print(" ${arr[i]}")
}
}
해당 기능 구현 및 확인차에 만든 코드이며 매우 간단한 로직을 가진다.
arr.size로 해당 배열의 크기를 구하고(arr는 0,1,2,3,4 총 5개의 요소를 가지므로 size는 5다)
해당 사이즈를 구한 이유는 Index값을 손쉽게 설정하기 위해서다.
인덱스는 0부터 시작하므로 size-1을 해주면 인덱스 값을 찾기 쉬워진다.
arr[i] = arr[arrIndex-i]
에서 Index값에 -i를 해주는 이유는 이러하다
i가 0일 때
arr[0] = 0이고
arr[arrIndex(arr.szie-1 = 5=1 =4)-0] = arr[4]
즉
arr[0] = arr[4] 로 바뀌며
arr[4] = change //arr[0]으로 해주므로써 arr[0]에 arr[4]로 변환한 값을 저장해준다.
for(i in 0..arr.size /2)
를 살펴보자면 이러한 행위를 사이즈의 절반만큼만 해준다.
왜냐하면 이를 절반이 아닌 전체로 돌리게 된다면 결국에는 뒤집은 배열을 한 번 더 뒤집게 되어 원래의 배열로 돌아오기 때문이다.
프로그래머스 정답
class Solution {
fun solution(num_list: IntArray): IntArray {
val arrIndex = num_list.size - 1
for (i in 0..num_list.size / 2) {
val reverse = num_list[i]
num_list[i] = num_list[arrIndex - i]
num_list[arrIndex - i] = reverse
}
return num_list
}
}
https://notepad96.tistory.com/83
Kotlin find, findLast - 특정 원소 찾기(탐색)
1. find, findLast find, findLast 함수는 조건의 일치하는 원소를 찾을 때 사용할 수 있다. filter 함수가 조건의 일치하는 원소를 전부 찾았다면 find : 탐색을 앞에서부터 시작하여 만족하는 원소가 있다
notepad96.tistory.com
https://zerogdev.blogspot.com/2019/07/kotlin-filter-map-all-any-count-find.html