프로그래머스 코딩테스트 입문 0단계 문제입니다
https://school.programmers.co.kr/learn/courses/30/lessons/120924
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
📢 문제 설명
등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.
⭕ 정답 코드
class Solution {
public int solution(int[] common) {
int answer = 0;
int d = 0; //공차, 공비
if(common[2]-common[1] == common[1]-common[0]){
//등차수열인 경우
d = common[2]-common[1];
answer = common[common.length-1]+d;
}else{
//등비수열인 경우
d = common[2]/common[1];
answer = common[common.length-1]*d;
}
return answer;
}
}
⚠️ 직접 풀어본 처음 풀이
🔗 코드
class Solution {
public int solution(int[] common) {
int answer = 0;
int d = 0; //공차, 공비
if(common[2]-common[1] == common[1]-common[0]){
//등차수열인 경우
d = common[2]-common[1];
answer = common[common.length-1]+d;
}else{
//등비수열인 경우
d = common[2]/common[1];
answer = common[common.length-1]*d;
}
return answer;
}
}
*정답 코드와 같은 코드이다
🔍 해설
1. 문제의 제한 조건을 확인하면 common은 무조건 3개 이상의 요소를 가진다는 것을 알 수 있다
2. 3번째와 2번째 요소의 차, 2번째와 1번째 요소의 차가 같다면
3. 등차수열로 판단하여
4. 마지막 요소에 그 차를 더해준다
5. 아니라면 등비수열로 판단하여
6. 마지막 요소에 3번째를 2번째 요소로 나눈 값을 곱해준다
✅ 개선할 점
d 변수를 사용하지 않으면 더 짧게 코드를 작성할 수 있다
그렇지만 가독성을 위해 사용하고자 한다
'코딩테스트 스터디' 카테고리의 다른 글
코딩테스트 연습 - 제곱수 판별하기 (JAVA) (0) | 2023.01.11 |
---|---|
코딩테스트 연습 - n의 배수 고르기 (JAVA) (0) | 2023.01.06 |
코딩테스트 연습 - 약수 구하기 (JAVA) (0) | 2023.01.06 |
코딩테스트 연습 - 7의 개수 (JAVA) (0) | 2023.01.06 |
코딩테스트 연습 - 숫자 찾기 (JAVA) (0) | 2022.12.28 |