thumbnail

[lv.0] 다음에 올 숫자 | 프로그래머스

[lv.0] 다음에 올 숫자 | 프로그래머스

📋 [ 프로그래머스 ] 시리즈 몰아보기 (17)

✏️ (lv.0) : 다음에 올 숫자

등차수열/등비수열이 common이 주어질 때 마지막 원소 다음으로 올 숫자를 return하라

  • 등차수열/등비수열이 아닌 경우는 없다.
  • 2 < common의 길이 < 1000
  • -1000 < common의 원소 < 1000
  • 등비가 0인 등비수열은 주어지지 않는다.

예외처리를 할 필요가 없기 때문에 등차수열인지 등비수열인지 판단한 후 case에 맞는 solution을 작성한다.

  • 등비수열과 등차수열간에 원소가 겹치는 상황을 고려하여 지속적으로 원소간의 규칙을 검사하여 최종적으로 answer을 return할 수 있도록 한다.

    • 반복문을 이용해 계속해서 계산을 진행토록 한다.
  • (new!)위에서 말한 예외상황은 일어나지 않는다.

    • 공차가 0인 등차수열 = 공비가 1인 등비수열이기 때문에 2번 원소와 1번 원소의 차이값 만으로 판별할 수 있다.
          
1 // 최초로 제출한 solution
2 function solution(common) {
3 var answer = 0;
4 var temp = [(common[1] / common[0]), (common[1] - common[0])];
5
6 for (i=2; i<common.length; i++) {
7 if (common[i-1] * temp[0] == common[i]) {
8 answer = common[i] * temp[0];
9 } else if (common[i] - temp[1] == common[i-1]) {
10 answer = common[i] + temp[1];
11 }
12 }
13
14 return answer;
15 }
16
17 // 개선된 solution
18 function bestSolution(common) {
19 if (common[2] - common[1] == common[1] - common[0]) {
20 return common.pop() + common[1] - common[0]
21 } else {
22 return common.pop() * (common[1] / common[0]);
23 }
24 }
25 /* 해당 solution이 가능한 이유
26 : 예외상황인 공차가 0인 등차수열이 공비가 1인 등비수열과
27 결과값이 같기 때문
28 */
# 프로그래머스
# JS
# javascript
# 코딩테스트
# 알고리즘
# math

💡 로그인 하지 않아도 댓글을 등록할 수 있습니다!

👨‍💻 관련 포스트