[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.

Comments