Competition/Baekjoon

[백준] 2003번 자바 수들의합2

bisi 2020. 4. 21. 12:13
문제 출처 

https://www.acmicpc.net/problem/2003

 

2003번: 수들의 합 2

첫째 줄에 N(1≤N≤10,000), M(1≤M≤300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.

www.acmicpc.net

 

 

 

접근 방식 및 풀이

- 투포인트 알고리즘 사용

- 1806과 유사한 문제

[Algorithm/백준] - [백준] 1806번 부분합

 

 

 

 

 

소스 코드 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        long m = sc.nextLong();
        int[] arr = new int[n];
        for (int i = 0; i <n ; i++) {
            arr[i] =  sc.nextInt();
        }
 
        int count =0;
        long sum = 0;
        int left=0, right=0;
        while (true){
            if(sum >= m){
                sum -= arr[left++];
 
            }else if(right ==n){
                break;
            }
            else {
                sum += arr[right++];
            }
 
            if(sum == m){
                count++;
            }
 
        }
 
        System.out.println(count);
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

 

결과 

 

'Competition > Baekjoon' 카테고리의 다른 글

[백준] 2186번 자바 문자판  (0) 2020.04.24
[백준] 1963번 자바 소수 경로  (0) 2020.04.21
[백준] 1759번 자바 암호만들기  (0) 2020.04.21