class Solution {
public int solution(int[] common) {
if (common[1] - common[0] == common[2] - common[1]) {
return common[common.length - 1] + (common[1] - common[0]);
}
else return common[common.length -1] * (common[1] / common[0]);
}
}
등차수열인지 등비수열인지 판단해서 다음에 올 숫자를 출력하도록 한다.
등차수열은 앞의 항에 일정한 수를 더하여 얻어지는 수열
등비수열은 앞의 항에 일정한 수를 곱하여 얻어지는 수열
이렇게 구분할 수 있다.
그럼 이 둘을 어떻게 구분할까?
간단한건 등차수열인지 알아보면 된다.
일정한 수를 더하여 얻어지는 수열이라고 정의되어있듯이
첫 번째 인덱스와 두 번째 인덱스의 차이와 세 번째 인덱스와 두 번째 인덱스의 차이가 같다면 등차수열이다.
그러므로 자연스럽게 같지않으면 등비수열이되기 때문에
마지막 인덱스에 등차수열이면 차이값을 더해주고 등비수열이면 곱해주면 문제를 해결할 수 있다.