프로그래머스 문제풀이/Level 0

다음에 올 숫자 (자바, Java)

뮤츠 2022. 12. 13. 00:08

간단해서, 그냥 IDE 사용없이 쌩코딩으로 풀었다. 이게 왜이리 정답률이 낮나 싶음.

common의 길이는 2보다 크다. 따라서 0~2번째 배열값이 존재하므로,

공차인지 공비인지 판단하여 수열이 등차수열인지, 등비수열인지 정해준 다음,

마지막 수에서 공차를 더하거나 공비를 곱하면 된다.

정수 간 나눗셈은 엄밀한 값을 구하기 위해서는 double로 처리해줘야함을 잊지 말아야한다.

class Solution {
    public int solution(int[] common) {
        int gap1 = common[1]-common[0];
        int gap2 = common[2]-common[1];
        double ratio1 = common[1]*1.0/common[0];
        double ratio2 = common[2]*1.0/common[1];
        int l = common.length;
        int answer=0;
        if (gap1==gap2) {
            answer = common[l-1]+gap1;
        } else {
            answer = common[l-1]*(int)ratio1;
        }
        return answer;
    }
}