프로그래머스
[프로그래머스] 다음에 올 숫자_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을 보고 이해를 했으며 여기서 등차수열 ,등비수열을 구현해내는 과정에서 헤멨다.
문제를 보다가 큰 수 에서 작은 수를 빼거나 나누면 같은 수인것을 발견하고 그 이후 문제없이 풀 수있었다.
반응형