문제 : 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
}
}
'기타 > 알고리즘' 카테고리의 다른 글
Leetcode - 꽃 심기 / 문자열의 역모음 (0) | 2024.10.29 |
---|---|
LeetCode - 문자열의 최대 공약수/가장 많은 사탕을 가지고 있는 아이들 (0) | 2024.10.28 |
프로그래머스 코딩테스트 연습 - 문자열 밀기 with Kotlin (0) | 2022.12.11 |
프로그래머스 코딩테스트 연습 - 연속된 수의 합 with Kotlin (0) | 2022.12.10 |
프로그래머스 코딩테스트 연습 - 옹알이(1) with Kotlin (0) | 2022.12.07 |
댓글