알고리즘/프로그래머스

연속 부분 수열 합의 개수

베리영young 2025. 8. 19. 22:45

사용 알고리즘: 

사용 언어: java

 

import java.util.*;

class Solution {
    public int solution(int[] elements) {
        int len = elements.length;
        int[] newElements = new int[len * 2];

        for(int i = 0; i < elements.length; i++) {
            newElements[i] = elements[i];
            newElements[i + len] = elements[i];
        }
        
        
        Set<Integer> set = new HashSet<>();

        // 부분 수열의 합 구하기
        for(int size = 0; size < len; size++) {
            for(int start = 0; start < len; start++) {
                int sum = 0;
                for(int i = start; i < start + size; i++) {
                    sum += newElements[i];
                }
                set.add(sum);
            }
        }

        // 개수 반환
        return set.size();
    }
}

 

 

삼중 for문에서 어떤 기준을 활용하는지에 따라 난이도가 달라지는 듯

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

두 큐 합 같게 만들기  (0) 2025.09.11
다음 큰 숫자  (0) 2025.09.10
야근 지수  (6) 2025.08.19
여행경로  (1) 2025.08.10
단속카메라  (2) 2025.08.10