Kotlin/코딩테스트

[프로그래머스] 연속 부분 수열 합의 개수 - kotlin

깨노비 2023. 4. 13. 00:19
728x90
반응형

철호는 수열을 가지고 놀기 좋아합니다. 어느 날 철호는 어떤 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합으로 만들 수 있는 수가 모두 몇 가지인지 알아보고 싶어졌습니다. 원형 수열이란 일반적인 수열에서 처음과 끝이 연결된 형태의 수열을 말합니다. 예를 들어 수열 [7, 9, 1, 1, 4] 로 원형 수열을 만들면 다음과 같습니다.

class Solution {
    fun solution(elements: IntArray): Int {
        val intSet = elements.toMutableSet()
        val intArr = elements.copyOf()
        val size = elements.size

        for (i in 1 until size) {
            for (idx in intArr.indices) {
                val nextIdx = (idx + i) % size
                intArr[idx] += elements[nextIdx]
                intSet.add(intArr[idx])
            }
        }

        val answer = intSet.size
        return answer
    }
}
728x90
반응형