Javascript - 다음에 올 숫자

이율곡·2023년 7월 20일

Programmers

목록 보기
38/44
post-thumbnail

다음에 올 숫자

문제

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

입출력 예

commonresult
[1, 2, 3, 4]5
[2, 4, 8]16

등차수열?

연속하는 두 항의 차이가 모두 일정한 수열.

등비수열?

연속한 두 항의 비가 일정한 수열.

접근방법

이 문제의 핵심은 등차수열과 등비수열을 이해하고, 주어진 수열이 등차수열인지 등비수열인지 판단한 후, 해당 수열의 규칙에 따라 다음 항을 계산하는 것이다.

  1. 주어진 수열이 등차수열인지 등비수열인지 판단
  2. 두 번째 항에서 첫 번째 항을 뺀 값(차이)와 세 번째 항에서 두 번째 항을 뺀 값을 비교.
  3. 두 차이가 같다면 등차수열, 다르다면 등비수열로 판단.
  4. 등차수열이라면 마지막 항에 차이를 더하고, 등비수열이라면 마지막 항에 비를 곱해서 다음 항을 구해 반환.

풀이

function solution(common) {
    const difference = common[1] - common[0];
    const ratio = common[1] / common[0];

    if (common[2] - common[1] === difference) {
        return common[common.length - 1] + difference;
    } else {
        return common[common.length - 1] * ratio;
    }
}

첫 번째 항과 두 번째 항의 차이를 difference라는 변수에 저장하고, 첫 번째 항과 두 번째 항의 비를 ratio라는 변수에 저장한다.

다음 세 번째 항과 두 번째 항의 차이가 difference와 같은지 확인한다. 만약 같다면 주어진 수열은 등차수열이므로, 마지막 항에 difference를 더해 다음 항을 반환한다.

또는, 세 번째 항과 두 번째 항의 차이가 difference와 같지 않다면 주어진 수열은 등비수열이므로, 마지막 항에 ratio를 곱해 다음 항을 반환한다.


정리하기

이 문제는 주어진 수열이 등차수열인지, 등비수열인지 판별하고, 해당 수열의 다음 항을 계산할 수 있는지를 묻는 문제이다. 문제의 규칙을 빠르게 파악하는게 중요하고 두 항 사이의 관계에서 다음 항의 예측을 하는 능력이 중요하다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

정말 유익한 글이었습니다.

답글 달기