-
728x90
문제 설명
등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.
제한 사항
2 < common의 길이 < 1,000
-1,000 < common의 원소 < 2,000
common의 원소는 모두 정수입니다.
등차수열 혹은 등비수열이 아닌 경우는 없습니다.
등비수열인 경우 공비는 0이 아닌 정수입니다.입출력 예 설명
입출력 예 #1
- [1, 2, 3, 4]는 공차가 1인 등차수열이므로 다음에 올 수는 5이다.
답안
class Solution { public int solution(int[] common) { int answer = 0; boolean check = false; int diff1 = common[1]-common[0]; int diff2 = common[2]-common[1]; if(diff1 == diff2) { check = true; } else { check = false; } return check? common[common.length-1]+diff1 : common[common.length-1]*(common[1]/common[0]); } }
처음엔 for문을 이용해서 전체 배열을 돌면서 파악 해야 하나 생각했는데 두개의 숫자만 파악해도 된다는 사실을 깨닭았다. 그래서 diff1,diff2 변수에 0,1,2 번째의 원소의 차를 넣어 공차를 구분하고, 만약 같다면
등차수열
이므로 마지막 숫자에서 공차를 더하고 같지 않다면등비수열
이므로 마지막 숫자에서 공비를 곱해준다.728x90'algorithm' 카테고리의 다른 글
자바 알고리즘 - 종이 자르기 (0) 2023.08.28 자바 알고리즘 - 연속된 수의 합 (1) 2023.08.28 자바 알고리즘 - 등차수열의 특정한 항만 더하기 (0) 2023.08.25 자바 알고리즘 - flag에 따라 다른 값 반환하기 (0) 2023.08.24 알고리즘 - 조건 문자열 (0) 2023.08.24