728x90
반응형
힌트
더보기
- 등차수열은 두 번째 항과 첫 번째 항의 차와 세 번째 항과 두 번째 항의 차가 같다
- 등비수열은 두 번째 항과 첫 번째 항을 나눈 값이 세 번째 항과 두 번째 항을 나눈 값과 같다
정답
더보기
public static int Solution73(int[] common)
{
if(IsArithmeticSequence(common)){
return common[common.Length-1] + (common[1] - common[0]);
}else if(IsGeometricSequence(common)){
return common[common.Length-1] * (common[1] / common[0]);
}else{
throw new ArgumentException("Error");
}
}
static bool IsArithmeticSequence(int[] sequence){
int commonDiff = sequence[1]-sequence[0];
for(int i = 2; i < sequence.Length; i++){
if(sequence[i]-sequence[i-1]!= commonDiff) return false;
}
return true;
}
static bool IsGeometricSequence(int[] sequence){
int commonRat = sequence[1]/sequence[0];
for(int i = 2; i < sequence.Length; i++){
if(sequence[i]/sequence[i-1] != commonRat)return false;
}
return true;
}
해석
더보기
static bool IsArithmeticSequence(int[] sequence){
등차수열인지 확인하는 함수
int commonDiff = sequence[1]-sequence[0];
두 번째 항과 첫 번째 항의 차이를 저장
for(int i = 2; i < sequence.Length; i++){
if(sequence[i]-sequence[i-1] != commonDiff) return false;
}
반복문을 돌렸을 때 등차가 아닌 값이 나오면 false를 리턴한다
static bool IsGeometricSequence(int[] sequence){
등비수열인지 확인하는 함수
int commonRat = sequence[1]/sequence[0];
두 번째 항과 첫 번째 항을 나눈 값을 저장
for(int i = 2; i < sequence.Length; i++){
if(sequence[i]/sequence[i-1] != commonRat)return false;
}
반복문을 돌렸을 때 등비가 아닌 값이 나온다면 false를 리턴한다
return common[common.Length-1] + (common[1] - common[0])
등차수열이라면 마지막 항에 등차를 더해준다
return common[common.Length-1] * (common[1] / common[0]);
등비수열이라면 마지막 항에 등비를 곱해준다
728x90
반응형
'C#' 카테고리의 다른 글
[프로그래머스 힌트/답/해석] 안전지대 (2) | 2024.01.30 |
---|---|
[프로그래머스 힌트/답/해석] 연속된 수의 합 (0) | 2024.01.30 |
[프로그래머스 힌트/답/해석] 다항식 더하기 (0) | 2024.01.30 |
[프로그래머스 힌트/답/해석] 특이한 정렬 (0) | 2024.01.30 |
[프로그래머스 힌트/답/해석] 문자열 밀기 (0) | 2024.01.30 |