Python Coding Test

[프로그래머스/파이썬] Lv.0 다음에 올 숫자

Be Delayed 2024. 4. 19. 21:15

문제 설명

common : 등차수열 혹은 등비수열인 매개변수

마지막 원소 다음에 올 숫자를 return 하는 함수 완성하기.

 

제한사항

  • 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):
    # 등차수열인 경우
    if common[1] - common[0] == common[-1] - common[-2]:
        return common[-1] + (common[1] - common[0])
    # 등비수열인 경우
    else:
        return common[-1] * (common[-1] // common[-2])

 

common 변수를 계속해서 사용. 코드를 치기 번거로움

다른 사람의 풀이

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

 

계속해서 인덱스를 통해 찾아다니기 번거로우니 ' a,b,c = common[:3] ' 을 통해
common의 길이는 3 이상이니 [:3]을 이용한다면 무조건 인덱스에 해당하는 값 존재.