Hyunebee

K가 되는 수 본문

Java/코테

K가 되는 수

Hyunebee 2022. 5. 18. 23:48

투포인터를 이용한 풀이

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      int arrSize = sc.nextInt();// 배열의 크기
      int N = sc.nextInt(); // N 의 크기


      int[] arr = new int[arrSize];
      for(int i = 0; i < arrSize; i++){
        arr[i] = sc.nextInt();
      }
      Main T = new Main();


      System.out.println(T.solution(arr , N));

    }

    public int solution(int[] arr, int k){

      int p1 = 0;
      int p2 = 0;
      int sum = 0;
      int cnt = 0;

      for(p1 = 0 ; p1 < arr.length; p1++){
        sum += arr[p1];

        if(sum == k){
          cnt++;
        }

        while(sum >= k){
          sum-= arr[p2++];
          if(sum == k){
            cnt++;
          }
        }



      }

      return cnt;
    }

여기서 idx부터 감소하는데 한번 감소했음에도 아직도 sum보다 클수 있음으로 while문을 사용해줌

'Java > 코테' 카테고리의 다른 글

씨름선수선발하기  (0) 2022.05.19
연속해서 가장 긴 수  (0) 2022.05.19
배열 합치기  (0) 2022.05.18
3주차 코딩테스트 4번  (0) 2022.05.05
3주차 코딩테스트 3번  (0) 2022.05.05