1. Clarify Questions / Idea
- 리스트로 매개변수에 저장하는 것인가? 예시 보니 그러하다
- 음수도 다 포함해서 생각? 당근
- 어떻게 해서 주어진 숫자들을 보고 등차인지 등비인지 알 수 있을까?
- 등차 같은 경우: 리스트 옆에 있는 숫자들끼리 빼본다 차가 같은면 등차임을 알 수 있다
- 그렇다면 차가 일정하지 않으면 등비라고 생각하기? 즉 등차 등비 외에는 둘다 아닌 경우에 대해서는 나오게 될것인가?
- 등비임을 판단하면 그냥 바로 첫번째 두번째 수를 나눔으로서 공비를 확인할 수 있다.
- 리스트는 등차라면 모두 등차인것이가? 예외인 숫자는 없는 거겠지? 그러면 세개의 숫자만 확인하고 구할 수 있으니까
- 그렇다면 리스트 안에는 최소 3개는 들어가 있어야겠지?
2. Get to the most Optimized solution
- 리스트의 숫자를 받아와서 등차인지 아닌지 판단
- 등차라 하면 이미 구한 차를 마지막 수에 더하기
- 등비라면 첫번째 두번째 수를 나눠서 등비 구한 후 마지막 숫자에 등비를 곱하기
3. Code
1차 실패
def solution(common):
answer = 0
i = 0
count = len(common)
if count >= 3:
if common[i+1] - common[i] == common[i+2] - common[i+1]:
diff = common[i+1] - common[i]
answer = common[count]+diff
else:
diff = common[i+1]/common[i]
answer = common[count]*diff
return answer
이유:
- common[count]는 common 리스트의 범위를 벗어나는 인덱스입니다. 따라서 common[count-1]을 사용해야 합니다.
- common[count] 대신 common[-1]을 사용하여 리스트의 마지막 요소를 가져와야 합니다.
정답
def solution(common):
answer = 0
i = 0
count = len(common)
if count >= 3:
if common[1] - common[0] == common[2] - common[1]:
diff = common[1] - common[0]
answer = common[-1]+diff
else:
diff = common[i+1]/common[i]
answer = common[-1]*diff
return answer
'코딩테스트 > 프로그래머스[모든문제Lv.0]' 카테고리의 다른 글
잘라서 배열로 저장하기 (0) | 2023.03.31 |
---|---|
문자열 밀기 ☑️ (0) | 2023.03.31 |
종이 자르기 (0) | 2023.03.31 |
연속된 수의 합 (0) | 2023.03.30 |
옹알이(1) (0) | 2023.03.30 |