728x90
문제 설명
등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.
제한사항
- 2 < common의 길이 < 1,000
- -1,000 < common의 원소 < 2,000
- common의 원소는 모두 정수입니다.
- 등차수열 혹은 등비수열이 아닌 경우는 없습니다.
- 등비수열인 경우 공비는 0이 아닌 정수입니다.
입출력 예commonresult
[1, 2, 3, 4] | 5 |
[2, 4, 8] | 16 |
입출력 예 설명
입출력 예 #1
- [1, 2, 3, 4]는 공차가 1인 등차수열이므로 다음에 올 수는 5이다.
입출력 예 #2
- [2, 4, 8]은 공비가 2인 등비수열이므로 다음에 올 수는 16이다.
def solution(common):
answer = 0
n1 = common[1] - common[0]
n2 = common[2] - common[1]
if n1 == n2:#이 경우는 등차
d = common[1] - common[0]
answer = common[len(common) - 1] + d
else:
r = common[1] // common[0]
answer = common[len(common) - 1] * r
return answer
일단 조건에서 등차 등비수열이 아닌 경우는 없다고 했으니 다른 경우는 생각하지 않아도 된다.
첫번째, 두번쨰, 세번째 항이 무조건 주어져야 등차 등비수열이 완성이 된다.
따라서 두번 째 항에서 첫번 째 항을 빼고, 세번째 항에서 두번째 항을 뺀 값을 각각 저장한다.
둘이 같다면 등차일것이고 다르다면 등비일 것이다. (등차 아니면 등비수열인 경우밖에 없다고 하였으니)
이후의 계산은 위의 코드와 같이 하면 된다.
728x90
'Study > CodingTest' 카테고리의 다른 글
[백준/Python] (S4)1676 - 팩토리얼 0의 갯수 (0) | 2023.06.20 |
---|---|
[백준/Python] (S4)2164 - 카드2 (0) | 2023.06.20 |
[Programmers] Lv.0 - 삼각형의 완성조건 (1) (0) | 2023.01.02 |
[Programmers] Lv.0 - 영어가 싫어요 (0) | 2023.01.02 |
[Programmers] Lv.1 - 기사단원의 무기 (0) | 2022.11.17 |