코딩테스트

코테 Lv0 - 다음에 올 숫자

Beekei 2024. 11. 9. 02:04
반응형

문제 설명

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

더보기
더보기

등차수열
1,3,5,7,9,⋯처럼 연속한 두 항의 차가 일정한 수열을 등차수열이라고 한다. 

연속한 두 항에서, 뒤 항에서 앞 항을 뺀 값을 공차(common difference)라고 한다.

 

등비수열

3,6,12,24,48,⋯처럼 연속한 두 항의 비가 일정한 수열을 등비수열이라고 하며, 아래에서 살펴볼 기하적 증가 양상 때문에 기하수열이라고도 한다. 

여기에서 연속한 두 항의 비를 공비(common ratio)라고 한다. 

제한사항

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

입출력 예

입출력 예 #1

Input : [1, 2, 3, 4] / Output : 5

더보기
더보기

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

입출력 예 #2

Input : [2, 4, 8] / Output : 16

더보기
더보기

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

입출력 예 #3

Input : [-1, 2, -4] / Output : 8

더보기
더보기

[-1, 2, -4]은 공비가 -2인 등비수열이므로 다음에 올 수는 8이다.

제출코드

  1. 제한사항에 common의 길이는 2보다 크니까 원소는 최소 3개입니다.
  2. 첫 번째, 두 번째, 세 번째 원소의 각 차이를 구하고 차이가 같다면 등차수열, 같지 않다면 등비수열이라고 판단했습니다.
  3. 마지막 원소값에 등차수열이라면 차이값을 더해주고 등비수열이라면 나눈 값을 곱해주어 반환하였습니다.
class Solution {
    public int solution(int[] common) {
        int first = common[0];
        int second = common[1];
        int third = common[2];

        int diff1 = second - first;
        int diff2 = third - second;
        if (diff1 == diff2) {
            return common[common.length - 1] + diff1;
        } else {
            return common[common.length - 1] * second / first;
        }
    }
}

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120924

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

반응형