구현(Implementation)
백준 8974번: 희주의 수학시험
cepiloth
2018. 7. 25. 11:08
반응형
https://www.acmicpc.net/problem/8974
1. 문제
강민이 동생 희주는 올해 초등학교에 입학했다. 며칠 있으면, 생애 첫 시험을 보게 될텐데, 수학시험도 같이 본다고 한다.
희주는 겁을 먹은 나머지, 열심히 준비해야겠다고 생각했다. 이를 본 오빠 강민이는 동생 희주를 위해 작은 도움을 주고자 한다.
연습문제 중에 하나가 정수를 적어나가는 것이였는데 수열은 1이 한 개, 2가 두 개, 3이 세 개.. 와 같이 만들어진다.
이제 강민이는 희주에게 두 개의 정수 A, B를 부를텐데, 그럼 희주는 주어진 수열에서 A번째와 B번째 사이에 있는 모든 수들의 합을 말해야한다.
예를 들면, A가 1이고 B는 3이라면 답은 처음 세 개의 정수를 더한 1+2+2 = 5 가 된다.
희주에게 문제를 내기 위해 정답을 계산하는 프로그램을 작성하시오.
2. 알고리즘
키워드 - 구현, 반복문
3. 코드
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 37 38 39 40 41 42 | #include <iostream> #include <sstream> #include <string> #include <algorithm> #include <functional> #include <vector> #include <list> #include <queue> #include <deque> #include <map> #include <set> #include <stack> #include <math.h> using namespace std; #define MAX_SIZE 100 #define INF 0x7fffffff #define CENDL "\n" #define ll long long int main() { cin.tie(0); std::ios::sync_with_stdio(false); int n, m, sol = 0; cin >> n >> m; for(int i=1, j=0, k=1; i<=m; i++){ if(i >= n) { sol += k; } if(++j == k) { k++; j = 0; } } cout << sol << CENDL; return 0; } | cs |
반응형