백준

[C언어] 백준 2003번: 수들의 합 2

d0ng2 2024. 8. 22. 16:15
  • 문제 

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


  • 코드
#include <stdio.h>
// 백준 2003번: 수들의 합 2
int main(){

    int n,m;
    scanf("%d %d", &n, &m);

    int arr[n];
    
    for(int i = 0; i < n; i++){
        scanf("%d", &arr[i]);
    }

    int count = 0;
    int sum = 0;

    for(int i = 0; i < n; i++){
        sum = 0;
        for(int j = i; j < n; j++){
            sum += arr[j];
            if(sum == m){
                count++;
                break;
            }
            if(sum > m){
                break;
            }
        }
    }

    printf("%d\n", count);
    
    return 0;
}

  • 문제풀이방법

부르트포스 사용

  1. 배열에 수 저장한다.
  2. 배열의  i번째 수부터 차례대로 합한다.(i = 0) 
  3. 합하는 도중 합이 M과 같다면 count(경우의 수)를 1 증가시키고 반복문을 마무리한다.
  4. 만약 합이 M보다 커질 경우 반복문을 마무리한다.
  5. i를 1 증가시키고 반복한다.