프로그래머스 Lv. 2 연속 부분 수열 합의 개수 JAVA

YB·2024년 12월 29일

링크텍스트

설명

코드에서 주의할 점은 elements[k%length]이다. 배열이 원형이기 때문에 인덱스가 배열의 길이를 넘어가면 처음으로 돌아가도록 %length 연산을 사용하였다. subList, 재귀로도 풀 수 있다.

코드

import java.util.*;

class Solution {
    public int solution(int[] elements) {
        HashSet<Integer> hs = new HashSet<>();
        int length = elements.length;
        
        for(int i=1;i<=length;i++){
            for(int j=0;j<length;j++){
                int sum = 0;
                for(int k=j;k<j+i;k++){
                    sum+=elements[k%length];
                }
                hs.add(sum);
            }
        }
        return hs.size();
    }
}

다른 사람의 풀이

링크텍스트

https://velog.io/@sugyeonghh/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%97%B0%EC%86%8D-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4-%ED%95%A9%EC%9D%98-%EA%B0%9C%EC%88%98Java

https://velog.io/@rlvy98/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%97%B0%EC%86%8D-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4-%ED%95%A9%EC%9D%98-%EA%B0%9C%EC%88%98Java-%EC%9E%90%EB%B0%94

profile
안녕하세요

0개의 댓글