등차수열 혹은 등비수열
common
이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.
- 2 <
common
의 길이 < 1,000- 1,000 <
common
의 원소 < 2,000common
의 원소는 모두 정수입니다.- 등차수열 혹은 등비수열이 아닌 경우는 없습니다.
- 등비수열인 경우 공비는 0이 아닌 정수입니다.
common result [1, 2, 3, 4] 5 [2, 4, 8] 16 입출력 예 설명
function solution(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]);
}
}
생각하기
- 등비수열이거나 등차수열인 경우라면, 해당 값이 얼마나 더해지고 곱해지느냐를 구하는게 관건이다
1. 일단 index[1] - index[0] 했을때 나오는 값을 구해보고
2. 그리고 index[2] - index[1] 했을때 나오는 값이 동일하면 등차수열, 동일하지 않다면 등비수열이다.
3. 등차수열의 경우 마지막 index값에서 등차값을 더해주면 되고
4. 등비수열의 경우 마지막 index값에서 등비값을 곱해주면 된다.
function solution(common) {
if ((common[1]-common[0])==(common[2]-common[1])){
return common.pop() + common[1] - common[0];
}
else{
return common.pop()*common[1]/common[0];
}
}
POP()
을 쓴다는게 신기해서 가져와 봤다.