알고리즘

[프로그래머스, 파이썬] 다음에 올 숫자

hminor 2024. 2. 26. 12:02

풀이

  • 두 번째 풀이로 했을 경우 생각했던 대로 
  • 잘 해결 될 것이라 생각했지만 제출 후 확인해보니
  • 계속해서 2개의 에러가 발생했기에
  • 첫 번째 풀이로 접근을 해보니 잘 해결되었다.
  • 다만 두 번째 풀이에 대한 테스트케이스가 무엇인지 
  • 계속 확인해본 결과
  • b = c[1]//c[0] 의 값이 0이 되는 경우에 발생하는 
  • 0이 분모의 경우에 대한 에러로 두 번째와 같이 작성하게 되면 에러가 발생한다.

// 첫 번째 풀이

def solution(c):
    if c[1]-c[0] == c[2]-c[1]:
        return c[-1]+c[2]-c[1]
    else: return c[-1]*(c[2]//c[1])

 

// 두 번째 풀이

def solution1(c):
    a,b,state = 0,0,True
    for i in range(1,3):
        if i == 1:
            a = c[1]-c[0]
            b = c[1]//c[0]
        else:
            if a != c[i]-c[i-1]: state = False
    return c[-1]+a if state else c[-1]*b