[프로그래머스] 다음에 올 숫자 - Java

Yunki Kim·2023년 1월 12일
0

프로그래머스

목록 보기
100/101
post-thumbnail

문제


링크


코드

class Solution {
    public int solution(int[] common) {
        if (common[1] - common[0] == common[2] - common[1]) {
            return common[common.length - 1] + (common[1] - common[0]);
        }
        else return common[common.length -1] * (common[1] / common[0]);
    }
}

리뷰

등차수열인지 등비수열인지 판단해서 다음에 올 숫자를 출력하도록 한다.

등차수열은 앞의 항에 일정한 수를 더하여 얻어지는 수열
등비수열은 앞의 항에 일정한 수를 곱하여 얻어지는 수열
이렇게 구분할 수 있다.

그럼 이 둘을 어떻게 구분할까?
간단한건 등차수열인지 알아보면 된다.
일정한 수를 더하여 얻어지는 수열이라고 정의되어있듯이

첫 번째 인덱스와 두 번째 인덱스의 차이와 세 번째 인덱스와 두 번째 인덱스의 차이가 같다면 등차수열이다.
그러므로 자연스럽게 같지않으면 등비수열이되기 때문에

마지막 인덱스에 등차수열이면 차이값을 더해주고 등비수열이면 곱해주면 문제를 해결할 수 있다.

0개의 댓글