본문 바로가기

슬라이딩윈도우

(2)
[코딩테스트] minSubArrayLen, 슬라이딩 윈도우 알고리즘 문제. 슬라이딩 알고리즘 - MinSubArrayLen  위 문제는 주어진 배열의 합이 숫자랑 같거나 큰 경우, 해당 배열합의 최소 길이를 반환하는 문제이다. 즉, array와 sum이 주어지면 array 요소의 합이 sum보다 크거나 같은 최소 길이를 반환하면 된다.이때 array 요소는 인접한 요소여야 한다.  슬라이딩 윈도우 알고리즘을 통해 해결해야 하며, 시간복잡도는 O(n) 공간복잡도는 O(1)이여야 한다. 처음에 어떻게 풀어야 할지 감이 안왔다. while문을 이용해서 한 칸씩 늘려가야 겠다는 생각을 하긴 했는데, 어떻게 늘려가야 하지? 라는 고민이 계속 들었다.  결국 시간이 지나도 문제를 맞추지 못해서 답안을 확인했다.  *슬라이딩 윈도우 알고리즘 : 배열의 한 부분을 정의하고, 이 부분을..
[Algorithm] 슬라이딩 윈도우 알고리즘(Sliding Window Algorithm) 1. 슬라이딩 윈도우 알고리즘(Sliding Window Algorithm)이란? 슬라이딩 윈도우 알고리즘은 고정 사이즈의 윈도우를 이동시키면서, 윈도우 내에 있는 데이터를 이용해 문제를 풀이하는 알고리즘을 말한다. 이때 윈도우 안에 있는 데이터는, 양 끝에 있는 원소들만 변화한다. 2. 예시 현수의 아빠는 제과점을 운영합니다. 현수 아빠는 현수에게 N일 동안의 매출기록을 주고 연속된 K일 동안의 최대 매출액이 얼마인지 구하라고 했습니다. 만약 N=10이고 10일 간의 매출기록이 아래와 같습니다. 이때 K=3이면 12 15 11 20 25 10 20 19 13 15 연속된 3일간의 최대 매출액은 11+20+25=56만원입니다. 여러분이 현수를 도와주세요. //내코드 function solution(k, ..