[프로그래머스] 다음에 올 숫자 - JavaScript

문제 출처

Lv.0 다음에 올 숫자 - JavaScript

문제 설명

등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.

제한 조건
  • 2 < common의 길이 < 1,000
  • -1,000 < common의 원소 < 2,000
  • 등차수열 혹은 등비수열이 아닌 경우는 없습니다.
  • 공비가 0인 경우는 없습니다.
예시

입출력 예

common return
[1, 2, 3, 4] 5
[2, 4, 8] 16
풀이
function solution(common) {
  // 제한사항을 보면 common의 길이는 무조건 3이상이다.
  // 또한 등차, 등비가 아닌 경우가 없으므로
  // 인덱스 2번 1번의 차가 인덱스 1번 0번의 차와 같으면 등차수열
  // 다르면 등비수열이다.
  if (common[2] - common[1] === common[1] - common[0]) {
    // 즉, 등차는 마지막 값에 등차 값을 더해주고
    return common.pop() + common[1] - common[0];
  } else {
    // 등비는 마지막 값에 나눠서 구한 등비를 곱해주면 된다.
    // 나누셈에 ()를 친 이유는 계산 순서 때문이다.
    return common.pop() * (common[1] / common[0]);
  }
}

console.log(solution([1, 2, 3, 4])); // 5
console.log(solution([2, 4, 8])); // 16
정리

사용된 메서드와 문법에 대해 더 공부하고 싶으신 분은 링크를 클릭해주세요!

pop() 메서드 - MDN

피드백은 언제나 환영입니다. 😊