- 내 풀이
class Solution {
public int solution(int[] common) {
int answer = 0;
int sum = common[1]-common[0];
int multi = 0;
for (int i = 1; i < common.length; i++) {
if(common[i]-common[i-1] != sum){
multi = common[i] / common[i-1];
sum = 0;
}
}
if (sum == 0){
answer = common[common.length-1] * multi;
}else if (multi == 0){
answer = common[common.length-1] + sum;
}
return answer;
}
}
테스트 8번 실패 소스
class Solution {
public int solution(int[] common) {
int answer = 0;
int check = 0;
// 첫번째 수와 세번째 수의 합 / 2는 두번째 수가 나온다
// 1 , 2, 3 -> (1 + 3) / 2 = 2
if ((common[0] + common[2]) / 2 == common[1]){
check = (common[1] - common[0]);
// 혹시 마지막 수와 마지막 전 수의 - 가 check 값과 같다면 등차수열이 아니다
if (common[common.length-1] - common[common.length -2] == check){
answer = common[common.length-1] + (common[1] - common[0]);
}else {
answer = common[common.length-1] * (common[common.length-1] - common[common.length -2]);
}
// // 첫번째 수와 세번째 수의 합 / 2가 두번째 수와 같이 않다면 등비수열이다.
} else {
answer = common[common.length-1] * (common[1] / common[0]);
}
return answer;
}
}
변수 선언 없이 그대로 입력했더니.. 코드가 보기 너무 지저분해졌다
테스트가 통과되지 않는 이유를 찾다보니 예) 1 ,2 , 4인 경우 가 있는데 내가 짠 코드는 등차수열로 인식을 해서였다
위의 코드를 변수에 담아 깔끔하게 작성하신 분의 코드를 붙여 놓겠다
- 다른 사람 풀이
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;
}
}
'프로그래머스 > [프로그래머스 - JAVA] Lv.0' 카테고리의 다른 글
[프로그래머스 - JAVA] 문자열 내림차순으로 배치하기 (0) | 2023.03.29 |
---|---|
[프로그래머스 - JAVA] 연속된 수의 합 (1) | 2023.03.18 |
[프로그래머스 - JAVA] OX퀴즈 (0) | 2023.03.18 |
[프로그래머스 - JAVA] 최빈값 구하기 (0) | 2023.03.18 |
[프로그래머스 - JAVA] 다항식 더하기 (0) | 2023.03.18 |
댓글