문제
해설
이 문제의 경우 등비수열과 등차수열을 구분할 수 있는 본질적인 것을 알아내면 된다.
일단 여기서 common의 길이는 2보다 크고 1000보다 작다고 했으므로 최소 3개라는 걸 알 수 있다.
그리고 등차수열이라면 3개의 요소의 각각의 차이가 동일할 것이며, 동비수열이라면 3개의 요소의 각각의 차이가 다를 것이다.
따라서 이 3개의 요소를 사용하여 등비수열인지 등차수열인지 분류하고, 이에 따라 마지막 요소의 값에 일정부분을 더하거나 혹은 곱해주는 방식으로 쉽게 코드를 작성할 수 있다.
코드
def solution(common):
interval = []
answer = 0
for i in range(1,3):
interval.append(common[i] - common[i-1])
if interval[0] == interval[1]:
answer = common[-1]+interval[0]
else:
answer = common[-1]*(common[-1]/common[-2])
return answer
결과
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[파이썬] 프로그래머 알고리즘 고득점 Kit - 해시 / 완주하지 못한 선수 완벽해설 (0) | 2024.05.09 |
---|---|
[파이썬] 프로그래머 알고리즘 고득점 Kit - 해시 / 폰켓몬 완벽해설 (0) | 2024.05.09 |
[파이썬] 프로그래머스 코딩테스트 2024 KAKAO WINTER INTERNSHIP - 가장 많이 받은 선물 완벽해설 (0) | 2024.05.07 |
[파이썬] 프로그래머 코딩테스트 - 피보나치 수 완벽해설 (효율성 고려) (0) | 2024.05.05 |
[파이썬] 프로그래머스 코딩테스트 입문 - 옹알이 (1) 완벽해설 (0) | 2024.04.19 |