FrontEnd/프로그래머스

연속 부분 수열 합의 개수

정_민_규 2023. 6. 6. 14:59
728x90

원형 부분 수열을 만들기 위해서 주어진 리스트를 2번 붙이면 반복되는 모든 경우의 수를 탐색해볼 수 있다.

 

또한 중복이 안되는 값들을 찾아야 하므로 set자료형을 만들었고 각 부분수열의 합들을 구해서 set자료형에 넣은 이후, set의 크기를 반환하여 문제를 해결하였다.

 

 

function solution(elements) {
    const ary = [...elements,...elements]
    const set = new Set()
    for (let i = 1 ; i <= elements.length ; i++) {
        for (let j = 0 ; j+i < ary.length ; j++){
            set.add(ary.slice(j,j+i).reduce((a,c) => a+c,0))
        }
    }
    return set.size
}
728x90