기타/알고리즘
프로그래머스 코딩테스트 연습 - 다음에 올 숫자 with Kotlin
개발짜
2022. 12. 8. 00:55
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/120924
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제설명
등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.
제한 사항
- 2 < common의 길이 < 1,000
- -1,000 < common의 원소 < 2,000
- 등차수열 혹은 등비수열이 아닌 경우는 없습니다.
- 공비가 0인 경우는 없습니다.
풀이
1. 첫번째 숫자, 두번째 숫자, 세번째 숫자의 차이를 각 변수에 저장
2. 첫번째 숫자와 두번째 숫자의 차이와 두번째 숫자와 세번째 숫자의 차이가 같을 경우 등차수열로 보고 아니면 등비수열로 본다.
3. 등차수열일 경우 (첫번째 숫자 + 공차 * 첫번째 숫자와 마지막 숫자의 거리값)
4. 등비수열일 경우 (common의 마지막 숫자 * 공비)
class Solution {
fun solution(common: IntArray): Int {
var answer: Int = 0
val oneNum = common[0]
val twoNum = common[1]
val threeNum = common[2]
val firstDiff = twoNum - oneNum
val secondDiff = threeNum - twoNum
if(firstDiff == secondDiff) {
answer = oneNum + (firstDiff * common.size)
} else {
var diff = secondDiff / firstDiff
answer = common.last() * diff
}
return answer
}
}