다음 올 숫자

PDJ4·2024년 3월 7일
0

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

내 풀이:


def solution(c):
	if all(c[i+2] - c[i+1] == c[i+1] - c[i] for i in range(len(c) - 2)):
    	answer = c[-1] + (c[-1] - c[-2])
    
    elif all(c[i+2] / c[i+1] == c[i+1] / c[i] for i in range(len(c)-2)):
    	answer = c[-1] * (c[-1] / c[-2])
    
    else:
    	answer = None
        
    return answer
    

다른 좋은 풀이들:


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]

내 문제점 :

처음 접근시 특수한 경우가 있을 수 있어 3개의 조합은 봐야한다고 생각했던 것, 처음 3개 요소에 대해서 (a,b,c)라면 b-a=c-b, b/a = c/b 인 경우도 있지 않을까하고 생각했던 것( 결론적으론 존재하지 않아서 굳이 고려할 이유가 없음.)
추가적인 이유로 이에 따라 all()을 통해 모든 i에 대해 판단하지 않아도 됨.

profile
STFOAJDI

0개의 댓글