연속된 부분 수열의 합

LJM·2023년 8월 3일
0

programmers

목록 보기
41/92

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

import java.io.*;
import java.util.*;


class Solution {
    public int[] solution(int[] sequence, int k) {


        int left = 0;
        int right = 0;
        int temp = 0;
        int len = 1000000;
        int s = 0;
        int e = 0;
        for(int i = left; i <= right; ++i)
            temp += sequence[i];
        while(right < sequence.length && left <= right){

            if(temp > k){
                temp -= sequence[left];
                left++;
            }else if(temp < k){
                right++;
                if(right < sequence.length)
                    temp += sequence[right];
            }else{
                if(len > right-left){
                    len = right-left;
                    s = left;
                    e = right;
                }
                right++;
                if(right < sequence.length)
                    temp += sequence[right];
            }

        }

        int[] answer = new int[2];
        answer[0] = s;
        answer[1] = e;
        return answer;
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글