슈콩

[프로그래머스] Lv.2 연속된 부분 수열의 합 본문

Algorithms/Programmers

[프로그래머스] Lv.2 연속된 부분 수열의 합

shukong 2025. 10. 18. 00:20

 

 

[문제]

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

[소스 코드]

class Solution {
    public int[] solution(int[] sequence, int k) {
        int n = sequence.length;
        int start = 0;
        long sum = 0;
        int minLen = Integer.MAX_VALUE;
        int[] answer = new int[2];
        for(int end=0;end<n;end++){
            sum += sequence[end];
            while(sum>k && start<=end){
                sum -= sequence[start++];
            }
            if(sum==k && (end-start)<minLen){
                answer[0] = start;
                answer[1] = end;
                minLen = end - start;
            }
        }
        return answer;
    }
}