본문 바로가기
알고리즘/문자열, 정렬

[알고리즘] 연속 부분수열 with Java

by VIPeveloper 2022. 3. 11.
반응형

오늘 배운 것

1. 느낀점

. 알고리즘 풀기가 점점 부담스러워졌다.. 역시 어려운 것이 나와서 그런가. 개념은 어렵지 않은데 구현력이 떨어지는 것을 느낀다. while문을 이용해서 계속 빼주는 것을 배웠다.

2. 문제 풀이

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        int n = kb.nextInt();
        int m = kb.nextInt();
        int[] arr = new int [n];
        for (int i = 0; i < n; i++) {
            arr[i] = kb.nextInt();
        }
        solution(m,arr);
    }

    private static void solution(int m, int[] arr) {
        int lt=0,tmp_sum=0,answer=0;
        for (int i = 0; i < arr.length; i++) {
            tmp_sum += arr[i];
            if(tmp_sum == m) answer++;
            while(tmp_sum >= m){
                tmp_sum -= arr[lt++];
                if(tmp_sum==m) answer++;
            }
        }
        System.out.println(answer);
    }
}
반응형