byworld 님의 블로그
등차이면서 등비구간이 있고, 이후부터는 갈라질 수 있을까? (없다!) 본문
프로그래머스 문제를 풀면서 갑자기 생각이 났다. 3개 수열 까지는 등차이면서 등비인데 이후는 등차나 등비가 갈라질 수 있을까? 처음에 나는 있다고 봐서 분기처리를 했다.
그런데 정말 그럴까? 궁금증이 생기면 가설을 검증해야지.
관련 문제
https://school.programmers.co.kr/learn/courses/30/lessons/120924
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
일단 그래프적으로 접근할 수도 있다. 하나는 공비가 0이상이면 지수함수(혹은 상수함수) * 상수 위의 점 하나는 직선 위의 점인데, 세점이 만나야한다. 근데 지수함수는 항상 이계도 함수가 양수로 유지되어 convex하기 때문에 많아야 두 점이 만난다. 다른 하나는 공비가 0보다 작을 때이니까 공비^2 차이나는 짝수 항 끼리는 지수함수가 성립한다. 다른 하나는 홀수항끼리 그 지수함수의 x축 대칭하는 그래프 위에서 만나야한다. 거기서 많이 만나야 3 점인데, 등차이려면 등간격이어야하지만 하나는 같은 그래프에서 만나야하므로 수열에서 경우의 수는 홀-짝, 짝-짝 이거나 짝-홀, 홀-홀 에서만 가능성이 있으므로 등간격이라는 조건에 어긋난다. n,m이 자연수라면 간격이 2m-1, 2n 인데, 다르기 때문에 불가능한 것이다.
그래프로 그리면 다음과 같다.

따라서 등비급수가 상수함수 위의 점일때만 등차와 등비가 동시에 성립한다.
이번에는 수식으로 하겠다. 이게 더 깔끔할 수도 있다.
일반적으로 초항을 a라고 하지만, 2번째 항을 a라고 하겠다. 공차를 d라고 하겠다.
등차중항 공식(직선 위의 점 이므로 중간에 있는 것이 평균)에 의해서 센터의 2배는 같은 거리에 떨어진 두 수의 합과 같다. 1,2,3항에 대해서는 다음과 같다.
2*a= a-d + a+d = 2*a
그리고 등비중항 공식에 의해서 같은 거리에 떨어진 두 수의 곱은 센터의 제곱과 같다.
a^2=(a/r)*(a*r) = a^2
그러면 이제 이 공식을 활용해서 연립해보겠다. 일단 공차니까 1,2,3항은 a-d, a, a+d이다. 그러면 이 내용에 대해서 등비중항이 성립하려면
a^2=(a-d)*(a+d) = a^2 - d^2 -> d^2=0, d=0
결국 그렇게 되려면 등차가 0이다. 그러면 상수함수라는 것이다.
그러면 등차와 등비 급수가 계속 된다. 등비는 1, 등차는 0으로.
이전 코드
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> common) {
int answer = 0;
if(common.size()==3){
if(2*common[1]==common[0]+common[2]){
return 2*common[2]-common[1];
}else{
return common[2]*common[2]/common[1];
}
}
else{
int n=common.size();
if(2*common[1]==common[0]+common[2]&&2*common[2]==common[1]+common[3]){
return 2*common[n-1]-common[n-2];
}else{
return common[n-1]*common[n-1]/common[n-2];
}
}
return answer;
}
개선 코드
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> common) {
int answer = 0;
int n=common.size();
if(2*common[1]==common[0]+common[2]){
answer= 2*common[n-1]-common[n-2];
}else{
answer= common[n-1]*common[n-1]/common[n-2];
}
return answer;
}
'수학' 카테고리의 다른 글
| 10*a+5의 제곱은? (+ 확장 (10*a+b) * (10*a+c), s.t. b+c=10) (0) | 2026.05.02 |
|---|---|
| [수학] 사분원 반갈 각도 문제 (0) | 2026.04.11 |
| 정규분포 꼴 적분 (0) | 2026.03.27 |