백준

백준 2003 수들의 합 2 c++

2024. 3. 29. 23:07

 

 

 

처음 작성한 코드는 다음과 같다.

하지만 틀렸다는 결과가 나왔다.

#include <iostream>
using namespace std;

int main(){
    int n,m;
    cin >> n >> m;
    
    int arr[n];
    for(int i=0; i<n; i++)
        cin >> arr[i];
    
    int answer = 0;
    for(int i=0; i<n; i++){
        int sum = arr[i];
        for(int j=i+1; j<n; j++){
            if( (sum+arr[j]) < m ) 
                sum += arr[j];
            else if( (sum+arr[j]) == m ) {
                answer++;
                break;
            }
            else
                break;
        }
    }
    
    cout << answer;
    return 0;
}

 

 

 

수정한 코드는 다음과 같다.

sum의 값을 선언하는 부분을 수정했다.

내부의 for문을 i+1부터 말고 i부터 돌도록 수정했더니 잘 돌아갔다.

#include <iostream>
using namespace std;

int main(){
    int n,m;
    cin >> n >> m;
    
    int arr[n];
    for(int i=0; i<n; i++)
        cin >> arr[i];
    
    int answer = 0;
    for(int i=0; i<n; i++){
        int sum = 0;
        for(int j=i; j<n; j++){
            if( (sum+arr[j]) < m ) 
                sum += arr[j];
            else if( (sum+arr[j]) == m ) {
                answer++;
                break;
            }
            else
                break;
        }
    }
    
    cout << answer;
    return 0;
}

 

 

 

 

 

'백준' 카테고리의 다른 글

백준 10431 줄세우기 c++  (0) 2024.03.31
백준 11723 집합 c++  (0) 2024.03.30
백준 13300 방 배정 c++  (0) 2024.03.28
백준 1475 방 번호 c++  (0) 2024.03.27
백준 11652 카드 c++  (0) 2024.03.27