나누어 떨어지는 배열
문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
제한사항
- arr은 자연수를 담은 배열입니다.
- 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
- divisor는 자연수입니다.
- array는 길이 1 이상인 배열입니다.
class Solution {
fun solution(arr: IntArray, divisor: Int): IntArray {
var answer = intArrayOf()
arr.forEach {
if(it % divisor == 0){
answer += it
}
}
answer.sort()
if (answer.isEmpty()) {
answer += -1
}
return answer
}
}
forEach : 순서가 있는 배열의 확장 함수 for문을 사용하던 외부 함수에서 내부함수로 바꿔 줄수 있게 만든 확장함수
it : 람다식 내부에서 사용되는 암시적 변수 람다식에서 인자가 하나인 경우 it을 사용해서 인자를 참조할 수 있습니다.
isEmpty : 문자열 길이가 0인 경우 true 리턴
음양 더하기
문제 설명
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
제한사항
- absolutes의 길이는 1 이상 1,000 이하입니다.
- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs의 길이는 absolutes의 길이와 같습니다.
- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
class Solution {
fun solution(absolutes: IntArray, signs: BooleanArray): Int {
var answer = 0
signs.forEachIndexed {index, i ->
when (i) {
true -> answer += absolutes[index]
else -> answer -= absolutes[index]
}
}
return answer
}
}
forEachindexed : forEach와 동일한 기능을 수행하며 value뿐만 아니라 index까지 같이 사용할 수 있다.
728x90