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, 2, 3, 4]는 공차가 1인 등차수열이므로 다음에 올 수는 5이다.
- [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]을 이용한다면 무조건 인덱스에 해당하는 값 존재.