본문 바로가기

백준/C++

[BaeKJoon/C++] 백준 8974 c++ 희주의 수학시험

반응형

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

 

8974번: 희주의 수학시험

강민이 동생 희주는 올해 초등학교에 입학했다. 며칠 있으면, 생애 첫 시험을 보게 될텐데, 수학시험도 같이 본다고 한다. 희주는 겁을 먹은 나머지, 열심히 준비해야겠다고 생각했다. 이를

www.acmicpc.net

문제

강민이 동생 희주는 올해 초등학교에 입학했다. 며칠 있으면, 생애 첫 시험을 보게 될텐데, 수학시험도 같이 본다고 한다.

희주는 겁을 먹은 나머지, 열심히 준비해야겠다고 생각했다. 이를 본 오빠 강민이는 동생 희주를 위해 작은 도움을 주고자 한다.

연습문제 중에 하나가 정수를 적어나가는 것이였는데 수열은 1이 한 개, 2가 두 개, 3이 세 개.. 와 같이 만들어진다.

이제 강민이는 희주에게 두 개의 정수 A, B를 부를텐데, 그럼 희주는 주어진 수열에서 A번째와 B번째 사이에 있는 모든 수들의 합을 말해야한다.

예를 들면, A가 1이고 B는 3이라면 답은 처음 세 개의 정수를 더한 1+2+2 = 5 가 된다.

희주에게 문제를 내기 위해 정답을 계산하는 프로그램을 작성하시오.

입력

한 줄에 양의 정수 A와 B가 주어진다. (1 ≤ A ≤ B ≤ 1000)

출력

희주가 대답해야 할 정답을 출력한다.

예제 입력 1 복사

1 3

예제 출력 1 복사

5

예제 입력 2 복사

3 7

예제 출력 2 복사

15

 

코드

#include <iostream>
#include <vector>
 
using namespace std;
 
int main() {
 
    int a,b;
    cin>>a>>b;
 
    vector<int> vec;
 
    // (1 ≤ A ≤ B ≤ 1000) (입력안)
    for(int i=1; i<=1000; i++){
        for(int j=1; j<=i; j++){
            // j=1 ~ j=1 1, 1번 반복 -> i == 1
            // j=1 ~ j=2 2, 2번 반복 -> i == 2, 2
            // j=1 ~ j=3 3, 3번 반복 -> i == 3, 3, 3 
            vec.push_back(i);
        }
    }
 
    int sum=0;
 
    // vector 배열은 [0]부터 시작하기 때문에 a와 b에 -1을 해준다.
    for(int i=a-1; i<=b-1; i++){
        sum+=vec[i];
    }
 
    cout<<sum;
    return 0;
}
cs

 

for(int j=1; j<=i; j++) 이 구간만 잘 이해를 한다면 아주 쉬운 문제다. 

반응형