반응형
Maximum Sum Subarray of Size K (easy)
리트코드의 이지 난이도 문제 풀이다.
시간 복잡도 : O(N)
공간 복잡도 : O(1) (배열 요소 없이 정수형 변수만 사용)
- 루프 밖에 윈도우 시작 인덱스 0으로 초기화(window_start=0)
- 길이 k가 되기 전엔 계속 더함
- 길이 k가 되면 (window_end>=k-1)
- 최대값 계산
- 맨 앞 인덱스 값 빼줌
- 맨 앞 인덱스 증가
파이썬 해답
def max_sub_array_of_size_k(k, arr):
max_sum , window_sum = 0, 0
window_start = 0
for window_end in range(len(arr)):
window_sum += arr[window_end] # 다음 요소 더함.
# k 길이 전까지는 그냥 더한다.
if window_end >= k-1:
max_sum = max(max_sum, window_sum)
window_sum -= arr[window_start] # 나갈 요소 뺌
window_start += 1 # 윈도우 인덱스 증가
return max_sum
반응형
'ETC' 카테고리의 다른 글
개발자의 갤럭시북3 울트라[NT960XFH-XD92G] 리뷰 (0) | 2023.04.04 |
---|---|
합이 S와 같거나 큰 subarray의 최소 길이 구하기 (0) | 2022.02.03 |
Sliding Window 패턴 개요 (0) | 2022.02.03 |
네트워크 면접 정리 With 모두의 네트워크. 마무리 : 네트워크 전체 흐름 살펴보기 / 무선랜 (0) | 2021.10.03 |
네트워크 면접 정리 With 모두의 네트워크. 7장 응용 계층 : 애플리케이션에 데이터 전송하기 (0) | 2021.10.03 |