[프로그래머스, Lv.0] 다음에 올 숫자 (java)
Problem Solving/Programmers

[프로그래머스, Lv.0] 다음에 올 숫자 (java)

728x90

문제 설명

등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 2 < common의 길이 < 1,000
  • -1,000 < common의 원소 < 2,000
    • common의 원소는 모두 정수입니다.
  • 등차수열 혹은 등비수열이 아닌 경우는 없습니다.
  • 등비수열인 경우 공비는 0이 아닌 정수입니다.

입출력 예

common result
[1, 2, 3, 4] 5
[2. 4. 8] 16

입출력 예 설명

입출력 예 #1

  • [1, 2, 3, 4]는 공차가 1인 등차수열이므로 다음에 올 수는 5이다.

입출력 예 #2

  • [2, 4, 8]은 공비가 2인 등비수열이므로 다음에 올 수는 16이다.
728x90

class Solution {
    public int solution(int[] common) {
        int answer = 0;
        boolean isAp = true; // 등차수열일 경우 true

        // 등차수열인지 체크
        int sub = common[1] - common[0];
        for(int i = 2; i < common.length; i++) {
            if (sub != common[i] - common[i - 1]) {
                isAp = false;
                break;
            }
        }

        // 등차수열이라면 마지막 원소에서 sub만큼 더해준 값이 result
        if(isAp) {
            answer = common[common.length - 1] + sub;
        }
        // 등비수열이라면, common의 1번째 원소를 0번째 원소로 나눴을 때의 몫을 마지막 원소에 곱해주면 result
        else {
            int mul = (int)(common[1] / common[0]);
            answer = common[common.length - 1] * mul;
        }
            return answer;
        }
}
728x90