본문 바로가기

Algorithm/프로그래머스

[Python] [코딩 기초 트레이닝] / 다음에 올 숫자

[문제 설명]

등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 
마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.



[제한사항]
1. 2 < common의 길이 < 1,000
2. -1,000 < common의 원소 < 2,000
	2-1. common의 원소는 모두 정수입니다.
3. 등차수열 혹은 등비수열이 아닌 경우는 없습니다.
4. 등비수열인 경우 공비는 0이 아닌 정수입니다.

 

def solution(common):
    answer = 0
    return answer

 

 

* 유형 : 등차, 등비수열

- if (n+1) - n == (n+m) - (n+(m-1)) : d = (n+1) - n

- answer = common[-1]+d

- elif (n+1) / n == (n+m) / (n+(m-1)) : r = (n+1) / n

- answer = common[-1] * r

 

 

 

 

[A] (내가 쓴 답)

def solution(common):
    
    answer = 0
    n = 0
    m = len(common)
    
    if common[n+1] - common[n] == common[m-1] - common[m-2] :
        d = common[n+1] - common[n]
        answer = common[-1] + d
    elif common[n+1] / common[n] == common[m-1] / common[m-2] :
        r = common[n+1] / common[n]
        answer = common[-1] * r
    
    return answer

 

 

 

[A] 다른 답들

def solution(common):
    answer = 0
    a,b,c = common[:3]
    if (b-a) == (c-b):
        return common[-1]+(b-a)
    else:
        return common[-1] * (b//a)
    return answer

 

def solution(common):

    if common[2]-common[1]==common[1]-common[0]:
        return common[-1]+common[2]-common[1]
    elif common[2]/common[1]==common[1]/common[0]:
        return common[-1]*common[2]/common[1]