https://school.programmers.co.kr/learn/courses/30/lessons/120924
시도 1)
class Solution {
public int solution(int[] common) {
int answer = 0;
int len = common.length;
int temp1 = common[2]-common[1];
int temp2 = common[1]-common[0];
//등비인지 등차인지 판별
if(temp1 == temp2)
{
//등차
answer = common[len-1]+temp2;
}
else
{
//등비
answer = common[len-1]*temp2;
}
return answer;
}
}
시도 2)
class Solution {
public int solution(int[] common) {
int answer = 0;
int len = common.length;
int temp1 = common[2]-common[1];
int temp2 = common[1]-common[0];
//등비
int ratio = common[1]/common[0];
//등차
int diff = common[1] - common[0];
//등비인지 등차인지 판별
if(temp1 == temp2)
{
//등차
answer = common[len-1]+diff;
}
else
{
//등비
answer = common[len-1]*ratio;
}
return answer;
}
}
정답
[프로그래머스/파이썬] 다음에 올 숫자 : 네이버 블로그 (naver.com)
- common이 등차수열의 경우 common[1]은 common[0]과 common[2]의 평균과 같다
- common이 등비수열인 경우 common[1]의 제곱은 common[0] 과 common[2]의 곱과 같다.
//등차 수열
common[1] == (common[0] + common[2])/2;
//등비 수열
Math.pow(common[1],2) == common[2]*common[0];
등차수열, 등비수열 공식 정리 (tistory.com)
등차 중항
- 세개의 숫자 a,b,c가 순서대로 등차수열을 이룬다면, b를 a와 c의 중차 중항이라 부른다.
등비 중항
- 세개의 숫자 a,b,c가 순서대로 등비수열을 이룬다면, b를 a와 c의 등비중항이라 한다.
정답
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[1]-common[0]);
} else{
answer = common[common.length-1]*((common[1]/common[0]));
}
return answer;
}
}
'Java > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - 문자열을 정수로 바꾸기 (0) | 2024.05.13 |
---|---|
[JAVA] 프로그래머스 - 문자열 내 p와 y의 개수 (0) | 2024.05.13 |
[JAVA] 프로그래머스 - 종이 자르기 (0) | 2024.05.12 |
[JAVA] 프로그래머스 - 문자열 밀기 (0) | 2024.05.12 |
[JAVA] 프로그래머스 - 연속된 수의 합 (0) | 2024.05.12 |