문서 색인

1. 문제

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


2. 코드 #1

   public static void main(String[] args) {
        // int[] nums = { 1, 1, 1, 1 };
        int[] nums = { 1, 2, 3, 4, 2, 5, 3, 1, 1, 2 };
        int m = 5;
        int result = 0;

        for ( int i=0; i<nums.length; i++ ) {
            int thisSum = 0;
            for ( int j=i; j<nums.length; j++) {
                thisSum += nums[j];
                if ( thisSum == m ) {
                    result++;
                    break;
                }
            }
        }

        System.out.println("result="+result);
    }

 


3. 코드 #2

   public static void main(String[] args) {
        // int[] nums = { 1, 1, 1, 1 };
        int[] nums = { 1, 2, 3, 4, 2, 5, 3, 1, 1, 2 };
        int m = 5;
        int sum = 0;
        int result = 0;
        int i = 0;
        int j = 0;

        while (true) {
            if (sum >= m) {
                sum -= nums[i++];
            } else if (j == nums.length) {
                break;
            } else {
                sum += nums[j++];
            }

            if (sum == m) {
                System.out.println(i + "~" + j);
                result++;
            }
        }

        System.out.println("result=" + result);
    }