프로그래머스 : 다음에 올 숫자

2022. 12. 12. 14:12

package practice;


class Solution {
    public int solution(int[] common) {
        int answer = 0;

        if(common[1]-common[0] == common[2]-common[1]) {
            answer = common[common.length - 1] + common[1] - common[0];
        }else { 
            answer = common[common.length - 1] * common[1] / common[0];
        } // length-1 은 배열의 마지막값을 알아내기 위한 식이다.
	// else문을 좋아하진않지만 else가 가능했던 이유는 if문으로 등차수열인지 등비수열인지
    // 체크가 끝났을때 만약에 등차수열이 아닐경우는 무조건 등비수열이라고 봐도 무방하다는 얘기.

        return answer;
    }
}

public class Programmers {

    public static void main(String[] args) {

       int[] common = {2,4,8};

        System.out.println(new Solution().solution(common));

    }

}

 

이 문제는 어렵게 접근하면 안되고 단순하게 접근해야 한다. 
제한 사항에 등차 또는 등비 수열이 아닌 경우는 없다고 했다. 
즉, 연속되는 배열의 3개의 수를 비교해서 등차인지 등비인지만 확인된다면.

answer 에는 그에 맞는 값을 넣어주기만 하면 된다!

 

BELATED ARTICLES

more