등차수열(AP)이란?
등차수열(Arithmetic Progression, AP)은 연속된 두 항 사이의 차이가 항상 일정한 수열을 의미합니다. 이 차이는 뒤의 항에서 앞의 항을 빼서 계산하며, '공차(common difference)'라고 부릅니다.
등차수열을 쉽게 이해하기 위해 간단한 예시를 살펴보겠습니다.
5, 7, 9, 11, 13, 15, ...
위 등차수열의 공차(d)는 2입니다. 즉, 모든 항이 바로 앞의 항보다 2씩 큽니다. 이 수열의 첫째 항(a)은 5입니다.
n번째 항을 구하는 일반 공식은 다음과 같습니다.
an = a + (n−1)d
문제: 교대 부호를 가진 제곱 급수의 합
이 문제에서는 하나의 등차수열이 주어지며, 부호가 양수와 음수로 교대로 나타나는 제곱 급수의 합을 구해야 합니다. 급수의 형태는 다음과 같습니다.
a12 − a22 + a32 − a42 + a52 + ......
좀 더 명확하게 이해하기 위해 예시를 살펴보겠습니다.
입력: n = 2
출력: -10
설명
1² − 2² + 3² − 4² = 1 − 4 + 9 − 16 = -10
즉, n = 2일 때 처음 2×n개(4개)의 항에 대해 홀수 번째 항은 더하고 짝수 번째 항은 빼면 결과값 -10을 얻을 수 있습니다.
C 언어 구현 예제
#include <stdio.h>
int main() {
int n = 4;
int a[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
int res = 0;
for (int i = 0; i < 2 * n; i++) {
if (i % 2 == 0)
res += a[i] * a[i];
else
res -= a[i] * a[i];
}
printf("The sum of series is %d", res);
return 0;
}
출력 결과
The sum of series is -36
위 코드는 배열의 인덱스가 짝수인 경우 해당 항의 제곱을 더하고, 홀수인 경우 제곱을 빼는 방식으로 동작합니다. n = 4일 때 1² − 2² + 3² − 4² + 5² − 6² + 7² − 8² = -36이 되어 최종 결과가 출력됩니다. 시간 복잡도는 O(n)으로 매우 효율적입니다.