티스토리 뷰
코트카타
두 개 뽑아서 더하기
문제
정답
class Solution {
fun solution(numbers: IntArray): IntArray {
val resSet = sortedSetOf<Int>()
for (i in numbers.indices) {
for (j in i + 1 until numbers.size) {
resSet.add(numbers[i] + numbers[j])
}
}
return resSet.toIntArray()
}
}
사전캠프 10일차에 풀었던 '삼총사' 문제의 로직을 활용해서 풀 수 있는 문제이다.
주어진 배열에서 수를 2개씩 뽑아야 하므로 2중 for문을 활용해
배열을 한 번씩 순회하면서 n번지와 n+1번지의 인덱스에 있는 두 수를 더해
resSet에 추가한 뒤, Int형 배열로 반환한다.
sortedSetOf()
val set = sortedSetOf(1, 2, 3, 2)
println(set) // [1, 2, 3]
sortedSetOf()는 Mutable 타입의 Set에 해당한다.
코틀린에서 "Mutable"은 수정 또는 변경 가능한 것을 나타낸다.
sortedSetOf<T>()로 선언한 Set변수는 값의 수정 또는 변경이 가능하며,
요소의 중복값을 제거하고 남은 요소는 오름차순 정렬을 진행한다.
타입 지정
val set2 = sortedSetOf<Int>()
set2.add(4)
val list = mutableListOf<Int>()
list.add(5)
코틀린의 'Collection'은 값을 추가하려면 추가할 값과 일치하는 자료형을 선언해줘야 한다.
numbers.indices
val numbers = intArrayOf(1, 2, 3, 4) // 배열크기는 4
println(0 until numbers.size) // 0..3
print(numbers.indices) // 0..3
'numbers.indices'의 값은 numbers 배열의 유효한 인덱스 범위에 해당한다.
이 범위는 0부터 배열의 크기보다 1 작은 값까지의 숫자들을 포함합니다.
'0 unitl numbers.size'값과 'numbers.indices'값은 같은 값을 가진다.
'내일배움캠프 > Android 사전캠프' 카테고리의 다른 글
사전캠프 TIL 17일차 (푸드파이트 대회 - Kotlin, MBTI 테스트 질문지 화면 마무리) (0) | 2024.05.14 |
---|---|
사전캠프 TIL 16일차 (가장 가까운 글자 - Kotlin, MBTI 테스트 질문지 화면 기능 구현) (0) | 2024.05.13 |
사전캠프 TIL 14일차 (K번째수 - Kotlin) (0) | 2024.05.11 |
사전캠프 TIL 13일차 (문자열 내 마음대로 정렬하기 - Kotlin | MBTI 테스트 질문지 화면 UI) (0) | 2024.05.10 |
사전캠프 TIL 12일차 (시저 암호, 숫자 문자열과 영단어 - Kotlin | MBTI 테스트 시작화면 UI 구현) (0) | 2024.05.09 |