오랜만에 푸는 알고리즘
알고리즘 문제 해결 전략의 첫 문제이다.
문제 자체는 그렇게 어렵지 않았는데 아직 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]))