취업 및 이직 준비/코딩테스트 준비
프로그래머스 자바 (다음에 올 수) 코딩테스트 문제
code2772
2023. 3. 18. 14:22
728x90
반응형
처음 프로그래머스 코딩테스트를 연습하였다. 회사 코딩테스트를 본적이 있는데 너무 어려워서 공부의 필요성을 느꼈다.
문제 설명
등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.
제한사항
- 2 < common의 길이 < 1,000
- -1,000 < common의 원소 < 2,000
- common의 원소는 모두 정수입니다.
- 등차수열 혹은 등비수열이 아닌 경우는 없습니다.
- 등비수열인 경우 공비는 0이 아닌 정수입니다.
입출력 예commonresult
[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[1] - common[0]) == (common[2] - common[1])){
answer = common[common.length -1] +1;
}else {
answer = common[common.length -1] * 2;
}
return answer;
}
}
테스트는 정답이나 제출 결과 11점 예에 초점을 두고 풀어 공비/차가 다른 예가 나오면 전부 틀렸다. 처음에 간단하게 1씩 증가하고 2배씩 변경된다고 생각하였기 때문이다.
✔ 다시 푼 결과
class Solution {
public int solution(int[] common) {
int answer = 0;
if((common[1] - common[0]) == (common[2] - common[1])){
answer = common[common.length -1] + (common[2] - common[1]);
}else {
answer = common[common.length -1] * (common[1] / common[0]);
}
return answer;
}
}
common[n] - common[n-1] n은 어떤것이 있든 상관 없을 것이다 왜냐하면 앞과 뒤를 계산하면 동일하기 때문이다. 나누기도 마찬가지이다.
반응형