[프로그래머스 코딩테스트 입문] 다음에 올 숫자 | 알고리즘 설명 & 문제 풀이 with 자바스크립트(Javascript)

Re_Go·2023년 12월 15일
0

코딩테스트연습

목록 보기
31/98
post-thumbnail
post-custom-banner

1. 문제 설명

2. 제한 사항

3. 입출력 예

4. 입출력 예 설명

5. 첫번째 문제 풀이(2023-12-15)

이번 문제는 등차수열등비수열의 개념을 먼저 알아봐야 해서 해당 개념을 검색 해보고 풀었는데요.

간단히 말해서 등차수열은 [1,3,5,7,9] 와 같이 수들이 일정한 간격으로 증가되는 수열을 의미하고, 등비수열은 [2,4,8,16,32] 같이 수들이 일정한 비율로 증가되는 개념이었습니다.

이를 배열에 적용을 해보면 배열의 등차수열은 Arr[1] - Arr[0] 일 것이고, 등비수열은 Arr[1] / Arr[0]로 구할 수 있는 것이죠. 그래서 이를 활용해 다음 올 값을 구할 수 있었습니다.

function solution(common) { 

    let nextValue = 0; // 다음 값 저장 변수
    let intervalValue = 0; // 간격 값 저장 변수
 
    if(common[1] - common[0] === common[2] - common[1]){ // 배열이 만약 앞의 간격과 그 다음의 간격이 일정한 수로 증가한 값이라면
        intervalValue = common[1] - common[0]; // 간격은 등차수열로 저장
        nextValue = common[common.length - 1] + intervalValue; // 다음 올 값은 배열의 마지막에서 간격을 더한 값
    }else if(common[1] / common[0] === common[2] / common[1]){ // 배열이 만약 앞의 간격과 그 다음 간격이 일정한 비율로 증가한 값이라면
        intervalValue = common[1] / common[0]; // 다음 올 값은 등비수열로 저장
        nextValue = common[common.length - 1] * intervalValue; // 다음 올 값은 배열의 마지막 요소를 비율과 곱한 값
    }
    return nextValue; // 정답 반환
}
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.
post-custom-banner

0개의 댓글