[codility] Prefix Sums - MinAvgTwoSlice (python)
728x90
반응형
수학적인 풀이가 대부분이라 수학적으로 풀었는데 그렇게 풀기 위한게 맞는 건지 모르겠다
알고리즘 능력 기르려고 대표 문제 풀때는 수학적인 문제 나오면 좀 싫다 ㅠㅠ
배열이 2개인 경우와 3개인 경우로 나눠서 풀면 되는데
4개인 경우에는 배열 2개인 경우보다 절대로 작을 수 없기 때문이다. (수학 공식)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
# write your code in Python 3.6
min_value=sum(A[:2])/2
ans=0
# 3개인 배열을 위해서 인덱스 제한
for i in range(1,len(A)-2):
# 원소 2개인 배열
temp=sum(A[i:i+2])/2
if temp<min_value:
min_value=temp
ans=i
# 원소 3개인 배열
temp=sum(A[i:i+3])/3
if min_value>temp:
min_value=temp
ans=i
# 원소가 2개인 배열은 마지막 2개짜리 배열 체크 못한 거 해준다
temp=(A[-1]+A[-2])/2
if min_value>temp:
min_value=temp
ans=len(A)-2
return ans
728x90
반응형
'codility' 카테고리의 다른 글
[codility] sorting: MaxProduct of three (0) | 2020.10.28 |
---|---|
[codility] Distinct (python) (0) | 2020.10.14 |
[codility] Counting Elements (python) (0) | 2020.10.14 |
[codility] max counters (python) (0) | 2020.10.14 |
[codility] TapeEquilibrium (python) (0) | 2020.10.14 |
TAGS.