Programmers

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

winter17 2023. 7. 5. 12:01

https://school.programmers.co.kr/learn/courses/30/lessons/120924

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 과정

function solution(common) {
    const diff = common[1] - common[0] // 등차수열
    const ratio = common[1] / common[0] // 등비수열
    const len = common.length
    
    if (common[len - 2] + diff === common[len - 1]){
        return common[len - 1] + diff
    }else if (common[len - 2] * ratio === common[len - 1]){
        return common[len - 1] * ratio
    }
}

등차수열, 등비수열을 구하는 문제인데 적어도 3개의 항을 확인해야 한다.

1. 첫 번째 조건문에서 마지막에서 두 번째 요소에 등차 값을 더해서 마지막 요소와 같다면 등차수열

2. 두 번째 조건문에서 마지막에서 두 번째 요소에 등비 값을 곱해서 마지막 요소와 같다면 등비수열

등비수열인데 첫 번째 요소가 1로 시작하는 경우도 고려해야 한다!

 

 


리뷰

등비, 등차수열을 적어도 3개의 항을 확인해야 하는데 두 개의 항만 비교해서 계속해서 오류가 발생했었다.