728x90
반응형
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

문제  설명: 

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

 

 

제한조건

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




입출력 예시

common	result
[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):
    arithmetric = common[1] - common[0]

    if common[1] + arithmetric == common[2]: # 등차수열
        return common[len(common)-1] + arithmetric
    else:
        return common[len(common)-1] * (common[1]//common[0])
  • arithmetric 변수에 등차수열의 조건 : n1 - n0은 공차(증가값) 
  • 해당 조건이 아닐 경우 등비수열로 간주 - 배열의 마지막 값 common(len(common)-1) * 공비(n1 // n0) 

 

다른 사람의 풀이 :

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
  •  제한사항 common은 길이 3이상이다를 이용해 a,b,c를 추출하여 b-a:가 c-b 서로의 차가 같음을 의미(공차) 일 경우 등차수열 간주
  • 이외의 경우 등비수열로 return
728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기