티스토리 뷰

코트카타

 

두 개 뽑아서 더하기

 

문제

 

 

정답

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'값은 같은 값을 가진다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함