자바/프로그래머스

[Programmers/JAVA] 연속 부분 수열 합의 개수

2가 2023. 2. 22. 21:44

내 코드

import java.util.*;
class Solution {
    public int solution(int[] elements) {
        int answer = 0;
        
        int index=1;
        HashSet<Integer> set=new HashSet<>();

        for(int i=0; i<elements.length; i++) {//elements.length만큼 반복(큰 틀)
            for(int j=0; j<elements.length; j++) {//elements index 위치를 하나씩 오른쪽으로 밀며 elements.length만큼 hap을 구함
                int hap=0;
                for(int z=j; z<j+index; z++) {//j부터 j+index-1까지 더한다.
                    hap+=elements[z%elements.length];
                }
                set.add(hap);
                if(i==elements.length-1) {// 오버 계산을 하지않게하기위해 마지막 계산은 한번만 실행
                    break;
                }
            }
            index++;
        }
        answer=set.size();
        
        return answer;
    }
}

 

느낀점

index를 i로 바꿔도 됐을것같다. z<=j+i이런 식으로 했으면 더 깔끔했을듯!