(알고리즘) Rock_festival.py

Mr.BBaSSaKK·2021년 1월 10일
0

오랜만에 푸는 알고리즘
알고리즘 문제 해결 전략의 첫 문제이다.

문제 자체는 그렇게 어렵지 않았는데 아직 for의 범위를 설정하는데 있어서 한 번에 하지 못한다는 점이... 아쉬웠다.
고급 알고리즘은 사용하지 못하고 완전탐색을 이용해서 풀었는데 실행시간이 2초에다가 메모리도 충분하고 테스트케이스도 적어서 완전탐색으로도 충분히 풀릴 수 있는 문제였다.
그리디 문제도 많이 풀어봐야 실력이 늘겠다...

def rock_fe(L, Days):
    minValue = 100 * 1000 / 100
    ans = [0] * 100
    for i in range(len(Days) - L):
        for j in range(len(Days) - i - L + 1):
            temp = Days[i: i + L + j]
            if sum(temp) / (L + j) < minValue:
                minValue = sum(temp) / (L + j)
                ans = temp
            elif sum(temp) / (L + j) == minValue and len(ans) < len(temp):
                minValue = sum(temp) / (L + j)
                ans = temp
            
    return minValue    


print(rock_fe(2, [1,2,3,1,2,3]))
profile
개발하는 인문학자

0개의 댓글