[코딩테스트연습] 코딩테스트 입문 > Lv.0 다음에 올 숫자

2024. 3. 23. 13:36코딩 테스트/[프로그래머스] Java

문제 설명


문제 풀이

이를 해결하기 위해서는 등차수열과 등비수열의 공식이 필요할까...?라는 생각이 들었다.

 

  • 등차수열이란? 두 항의 차가 일정한 수열, 연속한 항 중 (뒤 항 - 앞 항)을 공차라고 한다.

등차수열의 점화식

  • 등비수열이란? 연속한 두 항의 비가 일정한 수열, 연속한 두 항의 비를 공비라고 한다.

등비수열의 점화식

위 공식을 적용해서 문제를 해결해보려고 한다.

class Solution {
    public int solution(int[] common) {
        int answer = 0;
        for(int i=0; i<common.length-2; i++){
            int d1 = common[i+1] - common[i];
            int d2 = common[i+2] - common[i+1];
            if(d1==d2){ //등차수열
                return common[common.length-1]+d1;
            }
            int r1 = common[i+1] / common[i];
            int r2 = common[i+2] / common[i+1];
            if(r1==r2){ //등비수열
                return common[common.length-1]*r1;                
            }
        }
        return answer;
    }
}