[BOJ] 10539번: 수빈이와 수열

김주원·2020년 8월 1일
0
post-thumbnail

문제 링크

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

접근한 방식

인덱스 1부터 N까지 있다고 하고, 수열 A와 B의 i번째 값을 A[i], B[i]라고 하면 다음과 같은 규칙을 찾을 수 있다.

i == 1 이면, B[i] = A[i]
i > 1 이면, B[i] = i * A[i] - (A[1]부터 A[i - 1]까지의 합)

코드

C++

#include <iostream>
#include <vector>

using namespace std;

int N;
vector<int> A, B;

int func(const int& n, const int& i) {
	if (i == 1) return n;
	
	int result = 0;
	int sum = 0;

	result = i * n;

	for (int j = 1; j <= i - 1; j++)
		sum += A[j];

	result -= sum;
	
	return result;
}

int main() {
	scanf("%d", &N);
	A.resize(N + 1);
	B.resize(N + 1);

	for (int i = 1; i <= N; i++)
		scanf("%d", &B[i]);

	for (int i = 1; i <= N; i++)
		A[i] = func(B[i], i);

	for (int i = 1; i <= N; i++)
		printf("%d ", A[i]);

	return 0;
}
profile
자기계발 블로그

0개의 댓글