[프로그래머스] 연속 부분 수열 합의 개수(Kotlin)

0

프로그래머스

목록 보기
120/128
post-thumbnail

[프로그래머스] 연속 부분 수열 합의 개수(Kotlin)

풀이

import java.util.*

class Solution {
    fun solution(elements: IntArray): Int {
        //elements의 원형 수열을 나타낸 array
        var elementsCircle = arrayOf<Int>()
        for(e in elements) elementsCircle += e
        for(e in elements) elementsCircle += e
         
        //연속 부분 수열의 합을 담은 set
        val sumNum = mutableSetOf<Int>()
        
        var sum = 0 //길이가 elements.size인 연속 부분 수열의 합
        for(e in elements) sum += e
        sumNum.add(sum)
        
        for(len in 1 until elements.size){
            for(start in 0 until elements.size){
                var sum = 0 //길이가 len인 연속 부분 수열의 합
                
                sum += elementsCircle[start]
                for(next in start+1 until start+len) sum += elementsCircle[next]
                
                sumNum.add(sum)
            }
        }

        var answer: Int = sumNum.size
        return answer
    }
}
profile
Be able to be vulnerable, in search of truth

0개의 댓글