본문 바로가기

백준/C++

[C++] 백준 1292번 - 쉽게 푸는 문제

728x90

 

문제 1292번

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

 

배열에 1부터 1000까지 규칙에 맞게 담기 위해 i를 1부터 1000까지 반복해준다. 그리고 j를 이용해 1이면 1개만 2면 2개만 담을 수 있도록 만든다. 여기서 배열의 인덱스로 1부터 시작하는 n변수를 만든다. 그렇게 j부분의 반복문을 실행할 때마다 인덱스를 하나 증가시켜주는 것이다. j부분의 반복문을 다시 시작할 때 n이 1000을 넘는지 확인하여 범위가 넘지 않도록 주의해준다.

 

배열에 값을 다 넣어주면 마지막으로 A번째 숫자부터 B번째 숫자까지 반복문을 이용해 더해주어 해당 값을 출력해주면 된다.

 

#include <iostream>

using namespace std;

int main() {
	int A, B, n = 1;
	int num[1001];

	cin >> A >> B;

	for (int i = 1; i < 1001; i++) {
		for (int j = 1; j <= i; j++) {
        		if (n > 1000) {
				break;
			}
			num[n] = i;
			n++;
		}
	}

	int sum = 0;
	for (int i = A; i <= B; i++) {
		sum += num[i];
	}

	cout << sum;

	return 0;
}

 

 

728x90