프로그래머스

[프로그래머스] 다음에 올 숫자_python

미스터 한뺑 2023. 2. 15. 16:56
반응형

1. 의사 코드 적어보기

1. 등차수열 vs 등비수열

 - 등차수열 = 같은 숫자로 합해지는 수열

 - 등비수열 = 같은 숫자로 곱해지는 수열 

 

2.등차수열로 풀는 코드와 등비수열로 푸는 코드가 있어야함 

>> 조건문을 써야겠다는 생각이 들음 

 

2. 코드

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

 

2-1 코드 설명

1.common을 봤을때 리스트형태이고 인덱스가 3이하인 것을  확인 

그래서 변수 a,b,c를 지정해 인덱스의 값을 부여 

 

2. 조건문 첫번째는 만약에 common이 등차수열일때 푸는 코드이다 

b-a , c-b를 뺏을때 같다면 common이 등차수열인걸 확인 

그래서 answer는 common마지막 인덱스에 b-a 값을 더한다 . 

 

3. 두번째는 만약에 common이 등비수열일때 푸는 코드이다 

b // a , c // b , //는 두 수를 나눠서 몫만 반환하는 것이다 . 

두 식이 같다면 등비수열인걸 확인 할 수 있다.

그래서 answer는 common 마지막 인덱스에 b//a값을 곱한다 .

 

 

3. 느낀점 

등비수열과 등차수열을 까먹어서 이게 무슨 뜻인지 몰라서 문제를 못 풀고 있었다.

common을 보고 이해를 했으며 여기서 등차수열 ,등비수열을 구현해내는 과정에서 헤멨다.

문제를 보다가 큰 수 에서 작은 수를 빼거나 나누면 같은 수인것을 발견하고 그 이후 문제없이 풀 수있었다.  

 

반응형