코딩테스트 연습 - 다음에 올 숫자 | 프로그래머스 스쿨 (programmers.co.kr)
다음에 올 숫자
문제 설명
등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.
제한사항
- 2 < common의 길이 < 1,000
- -1,000 < common의 원소 < 2,000
- 등차수열 혹은 등비수열이 아닌 경우는 없습니다.
- 등비수열인 경우 공비는 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이다.
우선 맞춘 답부터.
class Solution {
public int solution(int[] common) {
int answer = 0;
// 등차
if(common[2] - common[1] == common[1] - common[0]) {
answer = common[common.length-1] + (common[1] - common[0]);
}
// 등비
else {
answer = common[common.length-1] * (common[1] / common[0]);
}
return answer;
}
}
해답과정을 설명하겠다.
- 등차 / 등비를 나눠야 한다.
- 등차일 때 공식 n = (n-1) + 등차
- 등비일 때 공식 n = (n-1) * 등비
- 등차 구하는 공식은 뒷항 빼기 앞항
- 등비 구하는 공식은 뒷항 나누기 앞항
정확성 테스트
테스트 1 〉 |
통과 (0.02ms, 66.4MB) |
테스트 2 〉 |
통과 (0.02ms, 77.5MB) |
테스트 3 〉 |
통과 (0.02ms, 76.1MB) |
테스트 4 〉 |
통과 (0.02ms, 74.4MB) |
테스트 5 〉 |
통과 (0.03ms, 73.6MB) |
테스트 6 〉 |
통과 (0.02ms, 66.9MB) |
테스트 7 〉 |
통과 (0.02ms, 81.8MB) |
테스트 8 〉 |
통과 (0.01ms, 75.3MB) |
테스트 9 〉 |
통과 (0.02ms, 75.4MB) |
채점 결과
정확성: 100.0
합계: 100.0 / 100.0