다음에 올 숫자

nacSeo (낙서)·2024년 4월 3일
0

프로그래머스

목록 보기
140/169

문제 설명

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

제한사항

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

나의 코드

  • 첫 번째 코드
class Solution {
    public int solution(int[] common) {
        int answer = 0;
        if(common[1]==common[0]+1) {
            answer = common[common.length-1]+1;
        } else {
            answer = common[common.length-1]*2;
        }
        return answer;
    }
}

처음에 아무 생각없이 입출력 예만 보고 공차나 공비를 1과 2로 두고 짜서 실패 😅

  • 최종 코드
class Solution {
    public int solution(int[] common) {
        int answer = 0;
        int d = 0;
        int r = 0;
        if((common[1]-common[0]) == (common[2]-common[1])) {
            d = common[1]-common[0];
            answer = common[common.length-1]+d;
        } else {
            r = common[1]/common[0];
            answer = common[common.length-1]*r;
        }
        return answer;
    }
}

바로 수정해서 통과! 공차를 d, 공비를 r로 선언하여 조건문을 통해 문제 해결 :)

다른 사람 코드

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

        int x = common[1] - common[0];
        int y = common[2] - common[1];

        if (x == y) {
            answer = common[common.length - 1] + y;
        } else {
            answer = common[common.length - 1] * common[2] / common[1];
        }

        return answer;
    }
}

느낀 점

처음엔 문제를 제대로 안읽고 입출력 예시만 보고 코드를 짜서 바로 실패했지만, 다시 읽고 바로 풀 수 있었던 문제였다. 정답률에 비해 어렵지 않았던 문제!
다른 사람 코드처럼 변수를 연속되는 두 원소값의 차이로 둬서 같을 때 공차수열 적용, 다를 때 공비수열로 적용해서 풀 수도 있었다.

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글