FrontEnd/프로그래머스

연속 부분 수열 합의 개수

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

'FrontEnd > 프로그래머스' 카테고리의 다른 글

[JS] 두 큐 합 같게 만들기  (0) 2023.06.08
[JS] 혼자 놀기의 달인  (0) 2023.06.08
[JS] 택배상자  (0) 2023.06.06
[JS] 롤케이크 자르기  (0) 2023.06.05
[JS] 우박수열 정적분  (1) 2023.06.03