본문 바로가기
알고리즘/Java

프로그래머스 코딩테스트 Level 2. 연속 부분 수열 합의 개수 with Java

by yhyuk 2024. 9. 22.
728x90
반응형

문제

https://school.programmers.co.kr/learn/courses/30/lessons/131701

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

import java.util.*;

class Solution {
    public int solution(int[] elements) {
        // elements의 2배 크기의 배열 생성
        int[] newElements = new int[elements.length * 2];
        
        // newElements의 i와 i + elements.length 위치에 elements[i] 저장
        for (int i=0; i<elements.length; i++) {
            newElements[i] = elements[i];
            newElements[i + elements.length] = elements[i];
        }
        
        // 중복 제거 Set
        Set<Integer> set = new HashSet<>();
        
        // 부분 수열 합
        for (int i=0; i<elements.length; i++) {
            for (int j=0; j<elements.length; j++) {
                // 새 배열에서 j부터 j+i-1 까지 부분 배열의 합을 구하고 Set에 추가
                set.add(Arrays.stream(newElements, j, j+i).sum());
            }
        }
        
        return set.size();
    }
}

 

https://github.com/yhyuk/h-algorithm/tree/master/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/131701.%E2%80%85%EC%97%B0%EC%86%8D%E2%80%85%EB%B6%80%EB%B6%84%E2%80%85%EC%88%98%EC%97%B4%E2%80%85%ED%95%A9%EC%9D%98%E2%80%85%EA%B0%9C%EC%88%98

 

h-algorithm/프로그래머스/2/131701. 연속 부분 수열 합의 개수 at master · yhyuk/h-algorithm

This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - yhyuk/h-algorithm

github.com

 

728x90
반응형

댓글