프로그래머스 연습문제 연속 부분 수열 합의 개수 [JAVA] - 23년 4월 11일

Denia·2023년 4월 11일
0

코딩테스트 준비

목록 보기
177/201

배열 사이즈를 2배로 늘려서 구함

import java.util.HashSet;
import java.util.Set;

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

        for (int i = 0; i < elements.length; i++) {
            newElements[i] = elements[i];
            newElements[i + elements.length] = elements[i];
        }

        Set<Integer> set = new HashSet<>();

        for (int length = 1; length <= elements.length; length++) {
            for (int idx = 0; idx < elements.length; idx++) {
                int tempVal = 0;
                for (int count = 0; count < length; count++) {
                    tempVal += newElements[idx + count];
                }
                set.add(tempVal);
            }
        }

        return set.size();
    }
}

나머지 연산자를 사용해서 풀이

import java.util.HashSet;
import java.util.Set;

class Solution {
    public int solution(int[] elements) {
        Set<Integer> set = new HashSet<>();

        for (int length = 1; length <= elements.length; length++) {
            for (int idx = 0; idx < elements.length; idx++) {
                int tempVal = 0;
                for (int count = 0; count < length; count++) {
                    tempVal += elements[(idx + count) % elements.length];
                }
                set.add(tempVal);
            }
        }

        return set.size();
    }
}

profile
HW -> FW -> Web

0개의 댓글